首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 網路程式設計精通指南(1):Internet 地址基礎 — IPv4/IPv6、分類、子網掩碼、DNS 與域名層級

     編輯:Java 相關知識

網路編程的起點是理解 IP 地址與域名體系。本文涵蓋 IPv4/IPv6 格式、分類、子網掩碼判斷同網段、DNS 解析機制、域名層級劃分,為後續 Java 網路 API 學習奠定基礎。

IP 地址基礎

IPv4 — 32 位,4 字節,點分十進制

  • 格式:X.X.X.X (0~255)
  • 理論總數:2³² = 4,294,967,296
  • 扣除特殊地址 (0.0.0.0, 127.0.0.1, 224.0.0.1, 255.255.255.255 等) 後可分配更少

IPv4 分類與標準子網掩碼 (傳統分類,現以 CIDR 為主)

類別範圍標準掩碼首字節範圍可用網絡數每網主機數
A 類0.0.0.0 – 127.255.255.255255.0.0.0 (/8)0~12712616,777,214
B 類128.0.0.0 – 191.255.255.255255.255.0.0 (/16)128~19116,38465,534
C 類192.0.0.0 – 223.255.255.255255.255.255.0 (/24)192~2232,097,152254
現代網路以 CIDR (無類別域間路由) 為準,掩碼長度任意 (如 /28, /30),不再受 A/B/C 類限制。

判斷同網段 — 位運算核心邏輯

兩 IP 與各自掩碼 按位與 (AND) 結果相同 → 同網段:

IP1: 192.168.18.10  掩碼: 255.255.255.0
IP2: 192.168.18.20  掩碼: 255.255.255.0
AND 結果: 192.168.18.0 → 同網段

// Java 實現
boolean sameSubnet(InetAddress ip1, InetAddress ip2, InetAddress mask) {
    byte[] b1 = ip1.getAddress(), b2 = ip2.getAddress(), m = mask.getAddress();
    for (int i = 0; i < b1.length; i++)
        if ((b1[i] & m[i]) != (b2[i] & m[i])) return false;
    return true;
}

ADSL/寬撥分配的通常為 C 類私有地址 (192.168.x.x, 10.x.x.x, 172.16~31.x.x)。

IPv6 — 128 位,16 字節,冒號分隔十六進制

  • 格式:X:X:X:X:X:X:X:X (每段 4 位十六進制)
  • 示例:A34E:DD3D:1234:4400:A123:B231:A111:DDAA

IPv6 簡寫規則 (RFC 5952)

  1. 前導零省略:003D → 3D, 0004 → 4
  2. 連續全零段壓縮為 :: (僅一次):A34E:0000:0000:0000:A123:B231:0:DDAA → A34E::A123:B231:0:DDAA
雙冒號 :: 只能出現一次,否則產生歧義。

IPv4/IPv6 混合環境下的嵌入格式

IPv6 後 32 位可寫為 IPv4 格式:

A34E::A123:B231:A111:DDAA  →  A34E::A123:B231:161.17.221.170
(最後 4 字節 0xA111DDAA = 161.17.221.170)

純 IPv4 客戶端訪問雙棧服務時,系統自動使用 IPv6 地址後 4 字節作為 IPv4 兼容地址。

DNS (Domain Name System) — 域名系統

  • 將易記域名映射為 IP 地址
  • 解析過程:遞歸查詢 → 根域 → 頂級域 → 權威域
  • 一域名可對應多 IP (負載均衡),DNS 隨機返回一個
  • 對用戶透明:瀏覽器輸入域名 → 系統自動解析 → 建立 TCP 連接

域名層級劃分

層級示例說明
頂層域名 (TLD).com, .org, .cn, .us類型頂級域 (.com/.edu/.gov) + 國家代碼頂級域 (.cn/.us/.uk)
頂級域名 (SLD)microsoft.com, csdn.net註冊單位擁有的域名,Email @ 後部分
二級域名blog.csdn.net, www.csdn.net頂級域名下的子域名,**www 也是二級域名**
三級域名abc.photo.163.com二級域名下的子域名,常用於用戶個性化空間
常見誤區:www.csdn.net 是頂級域名 ❌。正確是 csdn.net 為頂級域名,www.csdn.net 為其二級域名。習慣用 www 表示 Web 服務導致誤解。

總結

掌握 IP 格式、分類、子網掩碼計算、IPv6 簡寫、DNS 解析流程、域名層級,是網路程式設計的基礎語言。下一章將進入 Java InetAddress API 實戰。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved