IPv4 位址表示法換算器
輸入
| IPv4 位址 | 192.168.1.1 |
|---|
IPv4 位址表示法換算器
輸入點分十進位的 IPv4 位址,即可看到它的 32 位元整數、十六進位值與點分二進位表示。對於閱讀封包擷取、建立存取清單,以及理解位址如何儲存十分實用。
輸入
IPv4 位址
結果
輸入數值即可顯示計算結果。
各種表示法
IPv4 位址表示法
IPv4 位址在熟悉的點分十進位表示法之下,其實只是單一個 32 位元的數字。本計算機接受像 192.168.1.1 這樣的位址,並一次以四種表示法呈現同一個值:點分十進位、純整數、十六進位,以及點分二進位。每一種形式都精確且無損——它們是相同的位元,為不同讀者重新分組。網路工程師在閱讀封包擷取、撰寫存取控制清單、把位址存進資料庫,或推理子網路邊界落在何處時,都會用到這些轉換。
點分十進位:方便人閱讀的形式
人人都認得的這種表示法,把 32 位元切成四個 8 位元的群組,稱為八位元組,把每個八位元組寫成 0 到 255 之間的十進位數字,再用點連接。位址 192.168.1.1 的八位元組為 192、168、1 與 1。點純粹是給人方便的;硬體從來看不到它們,只看得到底層的位元。由於每個八位元組容納 8 位元,其值範圍可從 0(全部位元為零)到 255(全部位元為一),這也是為何大於 255 的八位元組不是有效位址。
整數形式
把四個八位元組視為以 256 為底的數字的各位數字,最左邊的八位元組最高位:
結果一律是介於 0 到 之間的單一無號整數。這個形式讓範圍檢查變得便宜:詢問某位址是否落在某區塊內,化為一對整數比較,遠比剖析點分字串快。許多資料庫與記錄管線正是基於此理由以這種方式儲存位址。
十六進位與二進位
十六進位以 16 為底、加上 0x 前綴表示同一個整數。由於兩個十六進位數字恰好編碼一個八位元組,對應關係相當整齊:每個八位元組變成一個固定的兩字元群組。十六進位是封包分析器與低階網路程式碼所顯示的形式。
二進位形式寫出全部 32 個位元,分成相同的四個八位元組。這是子網路遮罩與 CIDR 前綴實際運作的表示法。像 /24 這樣的前綴長度代表前 24 位元辨識網路、最後 8 位元辨識主機——這個邊界唯有把位址一位一位寫出來才能清楚看見。
計算範例
取 192.168.1.1。把每個八位元組轉換成 8 位元二進位得到:
19216811=11000000=10101000=00000001=00000001把各八位元組以點連接,得到二進位形式 11000000.10101000.00000001.00000001。把這些位元收攏成單一整數:
以 16 為底,該整數為 0xC0A80101——而且你可以直接從二進位讀出來,因為每個八位元組(192、168、1、1)對應到十六進位對 C0、A8、01、01。四種表示法描述的是同一個位址;改變的只是分組方式。
相關計算機
要用 CIDR 前綴把位址拆成網路與主機部分,請參閱 子網路(CIDR)計算機。要在 IPv4 情境之外,於十進位、二進位與十六進位之間換算任意數字,進制轉換工具 可處理底層的進位制算術。
常見問題(FAQ)
為何要將 IPv4 位址轉換成其他形式?
點分十進位形式方便人閱讀,但電腦、記錄檔與資料庫常將位址以純整數儲存與比對,因為整數比較很快,而範圍檢查也化為簡單的算術。
二進位形式是子網路遮罩與 CIDR 前綴實際運作的對象,而十六進位形式則是位址在封包標頭與許多除錯工具中呈現的樣子。把四種形式並列觀看,就能清楚看出它們是同一個數字穿著不同衣服。
什麼是點分十進位表示法?
IPv4 位址是一個 32 位元的數字。點分十進位表示法將這 32 個位元切成四個 8 位元的群組,稱為八位元組,把每個八位元組寫成 0 到 255 之間的十進位數字,再用點連接,例如 192.168.1.1。它純粹是一種方便人書寫位元的方式;點對硬體沒有任何意義,硬體只看到那 32 位元的值。
位址如何化為單一整數?
每個八位元組是以 256 為底的一位數字,最左邊的八位元組最高位。整數為 octet1 × 256³ + octet2 × 256² + octet3 × 256 + octet4。以 192.168.1.1 而言即為 192 × 16777216 + 168 × 65536 + 1 × 256 + 1 = 3232235777。結果一律介於 0 到 4294967295 之間,也就是 32 位元無號整數的完整範圍。
十六進位與二進位形式會出現在哪裡?
封包分析器、低階網路程式碼,以及許多路由器的顯示介面都以十六進位呈現位址,因為兩個十六進位數字恰好對應一個八位元組。每當你要推理子網路時,二進位形式就很重要:像 /24 這樣的前綴長度代表前 24 位元辨識網路,而唯有把位址寫成二進位,你才能清楚看到那些位元邊界。