什么是 IP 地址?从基础概念到查询工具分流
理解 IPv4、IPv6、私有与公网地址、静态与动态分配及 NAT,并根据问题选择 Windows PowerShell、Python 或 curl 查询本机、公网出口和地址属性。
作者Yiyao
什么是 IP 地址?
IP 地址是网络层用于传递数据包的标识。它帮助网络判断流量应该发往哪里,但它不是某个人、设备或物理位置的完整身份凭证。
IPv4 与 IPv6
IPv4 使用 32 位,通常写成四段十进制数字,例如 192.0.2.10。IPv6 使用 128 位,通常写成十六进制分组,例如 2001:db8::10。本文中的示例属于文档保留范围,不代表可测试的实时地址。
一个地址由网络部分和接口或主机部分组成,边界由前缀长度定义,例如 IPv4 的 /24 或 IPv6 的 /64。理解前缀比把地址看成四个互不相关的数字更准确。
私有、公网、静态与动态
10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16 等私有 IPv4 网段用于本地网络,通常不会直接在公网路由。IPv6 也有本地使用范围,例如 fc00::/7 中的唯一本地地址。一个地址是否可被公网访问,还取决于路由、防火墙和网络环境。
静态地址会被有意保持稳定,常用于服务或接口;动态地址由 DHCP 或运营商等系统分配,可能发生变化。静态与动态描述的是分配方式,并不等于公网或私网。
NAT 改变了什么
网络地址转换允许多个私有主机共享一个或多个公网 IPv4。网站通常看到的是 NAT、代理或 VPN 链路的公网出口地址,而本地程序可能看到私有地址。因此,电脑网卡上的地址和外部服务观察到的地址可能不同。
先判断你要查询哪一类问题
常见问题有三种:本机配置了哪些地址;外部服务看到的公网出口地址是什么;某个输入地址属于什么网络、前缀或分类。三类问题应使用不同工具,并在需要复现时记录时间和网络路径。
1. 查看本机配置的地址
Get-NetIPConfiguration
Get-NetIPAddress -AddressFamily IPv4
Get-NetIPAddress -AddressFamily IPv6
import socket
for item in socket.getaddrinfo(socket.gethostname(), None):
address = item[4][0]
print(address)
这些命令查看本机接口信息,结果可能包含回环、私有、虚拟网卡或链路本地地址,不能证明互联网服务最终能看到哪个地址。
2. 查看公网出口 IP
curl.exe https://api.ipify.org
curl.exe https://api64.ipify.org
from urllib.request import urlopen
with urlopen("https://api.ipify.org", timeout=10) as response:
print(response.read().decode("ascii").strip())
返回值是该服务在本次请求时看到的地址。VPN、代理、移动网络、负载均衡或运营商策略都可能让结果变化。不要把它当成确定的地理位置或永久身份。
3. 判断某个地址的属性或归属
$ip = "203.0.113.10"
Resolve-DnsName -Name $ip -ErrorAction SilentlyContinue
Test-Connection -ComputerName $ip -Count 1 -Quiet
import ipaddress
value = ipaddress.ip_address("203.0.113.10")
print({
"version": value.version,
"private": value.is_private,
"global": value.is_global,
"loopback": value.is_loopback,
"link_local": value.is_link_local,
})
curl "https://rdap.org/ip/203.0.113.10"
分析用户提供的地址时,先校验 IPv4 或 IPv6 格式,再通过权威注册机构或 RDAP 查询分配信息。RDAP、反向 DNS 与本地分类提供的是不同证据,都不能直接推导出具体个人或精确位置。
实际分流建议
Windows 本机接口问题可用 PowerShell 或本地 Python;公网出口问题可用 curl 或 Python 请求外部服务;地址格式、网段归属和注册信息则可用 ipaddress 加 RDAP。保存原始输入、时间、数据源和状态码,方便复核。
负责任地解释结果
IP 地址可以作为网络证据,但不能证明身份。共享网络、NAT、运营商级 NAT、代理、VPN、云基础设施和地址重新分配都会造成歧义。请遵守服务条款和适用法律,不要在没有授权的情况下探测系统,也不要把实时地址公开为某人的精确位置。
核心原则是先明确问题,再选择工具。本机配置、公网出口和地址注册归属是三种不同观察结果。
