網站首頁 電腦知識 正文
一、背景
與外公司進行業務合作的時候,需要提供我司的出口ip,用來開通白名單。
去找公司運維問出口ip,得到答復說:XX.XX.XX.128/25 這個網段一百多個ip都是我們的ip
內心:???100+的ip?這個25代表什么?應該是誤把255打成25了吧!恩,對的,應該是想說XX.XX.XX.128到XX.XX.XX.255這差不多有100多個的!!
但是畢竟是給外面公司,還是發揚不懂就問的精神吧!于是問了問這個25是什么,運維大哥回答說這是子網掩碼。
幸好多問了一句,發現了個知識盲區,所以仔細去了解了下網絡的基本知識,并整理記錄下來。
二、IP
1.IP 是什么
官方定義:IP 地址是一種在 Internet 上的給主機編址的方式,也稱為網際協議地址。IP 地址是 IP 協議提供的一種統一的地址格式,它為互聯網上的每一個網絡和每一臺主機分配一個邏輯地址,以此來屏蔽物理地址的差異。常見的 IP 地址,分為 IPv4 與 IPv6 兩大類。主要介紹的是 IPv4 這一類。
2.IP 的表現形式
IP 地址是一個 32 位的二進制數,但為了方便記憶,通常被分割為 4 個 "8 位二進制數",并且用 "點分十進制" 表示為 a.b.c.d
的形式,其中 a,b,c,d 都是 0~255 之間的十進制整數。
3.IP 地址分類
IP 地址分為五類,各類可容納的地址數目不同:
A 類保留給政府機構(0.0.0.0 到 127.255.255.255)
B 類分配給中等規模的公司(128.0.0.0 到 191.255.255.255)
C 類分配給任何需要的人(192.0.0.0 到 223.255.255.255)
D 類用于組播(224.0.0.0---239.255.255.255)
E 類用于實驗(240.0.0.0---247.255.255.255)
A、B、C 三類中 IP 地址 = 網絡地址 + 主機地址,而 D、E 兩類不區分網絡地址和主機地址
特殊說明:
(1)A 類中的 10.X.X.X 是私有地址;127.X.X.X 是保留地址
(2)B 類中的 172.16.0.0~172.31.255.255 是私有地址
(3)C 類中的 192.168.X.X 是私有地址
4. 網絡地址和主機地址
網絡地址可以簡單理解我們平時常說的網段
主機地址則是在這個網段中不同設備的地址
那么提供一個 IP 地址,我們要怎么得到網絡地址和主機地址呢?
這時候就輪到子網掩碼上場了!
三、子網掩碼
1. 作用
子網掩碼只有一個作用,就是將一個 IP 地址劃分成網絡地址和主機地址兩部分。
(常見的掩碼是由一連串 1 + 一連串 0 構成的,不過看網上資料也說 1 和 0 交替也是可以的)
默認分配的子網掩碼每段只有 255 或 0
- A 類的默認子網掩碼 255.0.0.0
- B 類的默認子網掩碼 255.255.0.0
- C 類的默認子網掩碼 255.255.255.0
2. 原理
子網掩碼與 IP 地址一樣是 32 位地址,然后將 IP 地址與子網掩碼進行與運算即可得到網絡地址。
例:
IP地址為192.168.10.2,子網掩碼為255.255.255.240。
先將十進制轉換成二進制:
IP地址: 11000000 10101000 00001010 00000010
子網掩碼: 11111111 11111111 11111111 11110000
進行與運算:--------------------------
11000000 10101000 00001010 00000000
則可得其網絡標識為192.168.10.0,主機標識為2。
3. 掩碼的不同表示形式
已經說過了子網掩碼也是 32 位的地址,那么開頭的 25 怎么轉化呢?
25 的意思是網絡號為 25,就代表連續的 25 個 1,然后剩下的用 0 補齊
即 11111111 11111111 11111111 10000000
4. 包含的其他信息
還是以這個信息為例:XX.XX.XX.128/25,我們還可以拿到什么信息呢?
(1)主機號:主機號 + 網絡號 = 32,32-25=7
(2)網絡地址:當 7 位主機號全為 0,也就是 XX.XX.XX.128
(3)廣播地址:當 7 位主機號全為 1,也就是 XX.XX.XX.255
(4)可用地址數量:7 位主機號有 2^7 種結果,但是要去掉網絡地址和廣播地址,即:2^7-2=126 (這個也就是運維所說的一百多個 ip)
這些信息網上是有工具可以直接幫助計算的,只要了解原理即可。
四、最后
不要不懂裝懂,多問問還是沒什么壞處的。
相關推薦
- 2024-01-16 Oracle的取整函數
- 2023-02-25 React中常用的Hook有哪些_React
- 2022-02-24 golang:日期與時間戳相互轉換
- 2022-11-05 Nginx配置文件中location配置的多種場景_nginx
- 2023-03-22 golang如何使用gomobile進行Android開發_Golang
- 2022-06-18 C語言?圖文并茂詳解程序編譯過程_C 語言
- 2022-12-03 robocopy命令用法實例解析_DOS/BAT
- 2022-10-08 ASP.NET泛型三之使用協變和逆變實現類型轉換_實用技巧
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支