知识点编号:020
难度等级:⭐⭐(掌握)
面试频率:🔥🔥🔥
🎯 一句话总结
IPv4地址分5类,就像房子分大平层、普通住宅、公寓、特殊用途!🏢
🏛️ IPv4五大类地址
A类地址:大平层 🏰
格式:0XXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
范围:0.0.0.0 ~ 127.255.255.255
网络数:128个(2^7)
每个网络主机数:16,777,214个(2^24 - 2)
特点:
- 第1位固定为0
- 前8位是网络号
- 后24位是主机号
- 适合超大型网络
示例:
10.0.0.1(A类)
网络号:10
主机号:0.0.1
生活比喻:
大平层豪宅,地很大,能住很多人
B类地址:普通住宅 🏘️
格式:10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
范围:128.0.0.0 ~ 191.255.255.255
网络数:16,384个(2^14)
每个网络主机数:65,534个(2^16 - 2)
特点:
- 前2位固定为10
- 前16位是网络号
- 后16位是主机号
- 适合中型网络
示例:
172.16.0.1(B类)
网络号:172.16
主机号:0.1
生活比喻:
普通小区,楼不多,每栋住几十户
C类地址:公寓 🏢
格式:110XXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
范围:192.0.0.0 ~ 223.255.255.255
网络数:2,097,152个(2^21)
每个网络主机数:254个(2^8 - 2)
特点:
- 前3位固定为110
- 前24位是网络号
- 后8位是主机号
- 适合小型网络
示例:
192.168.1.1(C类)
网络号:192.168.1
主机号:1
生活比喻:
小公寓,楼很多,但每栋只住几户
D类地址:组播 📡
格式:1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
范围:224.0.0.0 ~ 239.255.255.255
特点:
- 前4位固定为1110
- 用于组播(multicast)
- 不区分网络号和主机号
示例:
224.0.0.1:所有主机组播地址
生活比喻:
广播电台频率,不是具体地址
E类地址:实验用 🔬
格式:1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
范围:240.0.0.0 ~ 255.255.255.255
特点:
- 前4位固定为1111
- 保留用于实验
- 一般不使用
生活比喻:
实验室,不对外开放
📊 分类总结表
| 类别 | 首位 | 范围 | 网络数 | 主机数/网络 | 默认掩码 |
|---|---|---|---|---|---|
| A | 0 | 0-127 | 128 | 16,777,214 | 255.0.0.0 |
| B | 10 | 128-191 | 16,384 | 65,534 | 255.255.0.0 |
| C | 110 | 192-223 | 2,097,152 | 254 | 255.255.255.0 |
| D | 1110 | 224-239 | - | 组播 | - |
| E | 1111 | 240-255 | - | 保留 | - |
🔍 快速判断方法
看第一个数字:
0-127 → A类
128-191 → B类
192-223 → C类
224-239 → D类
240-255 → E类
示例:
10.0.0.1 → 10在0-127 → A类 ✓
172.16.0.1 → 172在128-191 → B类 ✓
192.168.1.1 → 192在192-223 → C类 ✓
224.0.0.1 → 224在224-239 → D类 ✓
💻 Java代码判断
public class IPClassifier {
public static String classifyIP(String ip) {
String[] parts = ip.split("\\.");
int firstOctet = Integer.parseInt(parts[0]);
if (firstOctet >= 0 && firstOctet <= 127) {
return "A类地址";
} else if (firstOctet >= 128 && firstOctet <= 191) {
return "B类地址";
} else if (firstOctet >= 192 && firstOctet <= 223) {
return "C类地址";
} else if (firstOctet >= 224 && firstOctet <= 239) {
return "D类地址(组播)";
} else {
return "E类地址(保留)";
}
}
public static void main(String[] args) {
System.out.println("10.0.0.1: " + classifyIP("10.0.0.1"));
System.out.println("172.16.0.1: " + classifyIP("172.16.0.1"));
System.out.println("192.168.1.1: " + classifyIP("192.168.1.1"));
System.out.println("224.0.0.1: " + classifyIP("224.0.0.1"));
}
}
// 输出:
// 10.0.0.1: A类地址
// 172.16.0.1: B类地址
// 192.168.1.1: C类地址
// 224.0.0.1: D类地址(组播)
🐛 常见面试题
Q1:IPv4地址有哪几类?各有什么特点?
答案:
A类:0.0.0.0 ~ 127.255.255.255
- 网络号:8位
- 主机号:24位
- 默认掩码:255.0.0.0
- 适合:超大型网络(如IBM、苹果)
B类:128.0.0.0 ~ 191.255.255.255
- 网络号:16位
- 主机号:16位
- 默认掩码:255.255.0.0
- 适合:中型网络(如大学、企业)
C类:192.0.0.0 ~ 223.255.255.255
- 网络号:24位
- 主机号:8位
- 默认掩码:255.255.255.0
- 适合:小型网络(如家庭、小公司)
D类:224.0.0.0 ~ 239.255.255.255
- 组播地址
E类:240.0.0.0 ~ 255.255.255.255
- 保留实验用
记忆技巧:
A大B中C小,D播E留
Q2:如何快速判断IP地址的类别?
答案:
看第一个数字(第一个八位组):
0-127 → A类
128-191 → B类
192-223 → C类
224-239 → D类(组播)
240-255 → E类(保留)
或者看二进制首位:
0 → A类
10 → B类
110 → C类
1110 → D类
1111 → E类
快速口诀:
"一二七以下A"
"一九一往下B"
"二二三之前C"
"二三九组播D"
"剩下都是E"
🎓 总结
IPv4地址分类的关键点:
- A类:0-127,大型网络
- B类:128-191,中型网络
- C类:192-223,小型网络
- D类:224-239,组播
- E类:240-255,保留
记忆口诀:
零到一二七是A 🏰
一二八到一九一B 🏘️
一九二到二二三C 🏢
二二四到二三九D 📡
二四零到二五五E 🔬
文档创建时间:2025-10-31