从一排访问日志说起
排查异常登录时,日志里有五个地址:10.0.0.1、172.16.5.3、172.32.0.1、192.168.1.1、8.8.8.8。第一件事不是查归属,而是分内外网——10.x、172.16-31.x、192.168.x 是内网保留段,10.0.0.1 和 172.16.5.3、192.168.1.1 都是内部地址;172.32.0.1 虽然长得像内网,但 32 超出 16-31 的范围,是公网地址;8.8.8.8 是公网 DNS。
内网段的判定边界
172 段的规则最易搞错:只有第二个字节 16 到 31(即 172.16.x.x 到 172.31.x.x)是内网,172.31.255.255 是这条界的上界,172.32.0.1 越界就是公网。自检方法:把第二个字节和区间端点比大小,含端点为内网。这个判定在防火墙白名单、日志审计里每天都会用到。
归属查询能告诉你什么
- 能:IP 注册的地区和运营商、是否属于云服务商或 CDN
- 不能:用户的真实位置(代理、VPN、公司出口 NAT 都会失真)
- 注意:同一 IP 的归属随分配变动,查询库要定期更新
- 内网地址查不到公网归属,属正常现象
常见问题
- IPv6 怎么判断内外网?
- 用 fe80::/10(链路本地)和 fc00::/7(唯一本地)两段判断,规则和 IPv4 不同。
- 为什么查到的归属和预期不符?
- 企业出口 NAT、云主机、代理链路都会让归属与用户所在地脱钩,结合多个信号判断。
- 日志里 0.0.0.0 是什么?
- 多为未指定地址或绑定通配,不代表真实主机,审计时按异常值处理。
IP 归属是线索不是地址:它告诉你流量从哪来,不告诉你人在哪。