什么是IP地址?通俗易懂的完整指南
IP地址相当于网络中设备的"门牌号"。互联网上的每个数据包都携带源IP和目的IP,路由器根据目的地址逐跳转发数据包,直到送达正确的设备。没有IP地址,就无法表明数据应该送往何处。
"IP"是 Internet Protocol(互联网协议) 的缩写,早在1981年的 RFC 791 中定义。如今有两个版本在使用:IPv4(仍最常见)和作为其后继而设计的 IPv6。本文以IPv4为主,并在需要处指向更深入的文章。
IPv4地址的结构
IPv4地址长 32位。为便于人类阅读,把这32位分成四个8位一组、称为 八位组(octet) 的部分,每组用十进制书写并以点分隔——即 点分十进制。
192 . 168 . 0 . 1
11000000 10101000 00000000 00000001
└─8位──┘ └─8位──┘ └─8位──┘ └─8位──┘ = 共32位
每个八位组取值 0–255(8位数能表示的范围),整个空间为 2³² ≈ 约43亿 个地址。听起来很多,但多年前就已耗尽——这正是IPv6存在、以及 CGNAT 和 NAT 无处不在的原因。
从点分十进制到二进制
看看一个十进制八位组如何对应到8位,有助于理解:
| 十进制 | 二进制 | 构成 |
|---|---|---|
0 |
00000000 |
全部为0 |
1 |
00000001 |
个位 |
192 |
11000000 |
128 + 64 |
255 |
11111111 |
全部为1 |
可用 IP进制转换 在十进制、二进制、十六进制和32位整数之间互转任意地址。
网络部分与主机部分
一个地址其实编码了两件事:设备属于哪个网络,以及在该网络内是哪台主机。两者的分界由 子网掩码,或等价的 CIDR表示法(如 /24)决定。
| 示例 | 含义 |
|---|---|
192.168.0.0/24 |
前24位=网络,后8位=主机 |
| 主机部分=8位 | 容纳 192.168.0.1–192.168.0.254(254台可用) |
192.168.0.0 |
网络地址(不分配给主机) |
192.168.0.255 |
广播地址(不分配给主机) |
这种划分是路由和子网划分的基础。掩码、广播、主机数量以及如何拆分网段等完整机制见 子网与CIDR基础,并可用 子网计算器 即时计算。
公网/内网、静态/动态
并非所有IP地址都相同:
- 公网地址全球唯一且可在互联网上路由。内网地址(如
192.168.x.x)在数百万家庭和办公网络中重复使用,并由NAT转换——见 公网IP与内网IP。 - 静态地址固定不变;动态地址由DHCP租用,可能随时间变化——见 静态IP与动态IP。
- 部分地址为 特殊用途,如回环地址
127.0.0.1(你自己的机器)——见 特殊地址 与 localhost与127.0.0.1。
一段话讲清IPv4与IPv6
IPv6使用 128位 地址,以十六进制书写(如 2001:db8::1),提供几乎无限的供给并免去NAT。它与IPv4不向后兼容,因此在漫长的迁移期内两者并行运行(双栈)。可从 什么是IPv6 与 IPv6 与 IPv4 开始。
如何查看自己的IP地址
答案有两个:设备上设置的本地(内网)IP,以及外界看到的公网IP。
公网IP会在本站 首页 顶部即时显示,并附带反向解析、国家和网络。在终端中也可向回显服务查询:
curl https://show-ip-addr.com/api/myip
本地IP按操作系统:
# Linux
ip -4 addr show # 或: ip a
# macOS (Wi-Fi)
ipconfig getifaddr en0
# Windows (PowerShell)
Get-NetIPAddress -AddressFamily IPv4
# 经典命令:
ipconfig
两者通常不同——你的电脑可能显示 192.168.0.10,而外界看到的是 203.0.113.5。这一差距正是NAT在起作用,详见 公网IP与内网IP。
调查任意地址
要查询某地址的所有者及其所属网络,请用 IP查询工具(通过RDAP获取注册信息)和 ASN查询(路由/AS视角)。要了解一个地址能透露关于个人的什么信息,请阅读 IP能透露什么。
备注: 电脑内部显示的IP与外界看到的IP通常不同。内网IP是私有的、到处重复使用;只有公网IP在互联网上唯一——而即便是公网IP,在CGNAT之下也常与邻居共享。