首页/网络/IP 与子网速查/用 Python ipaddress 判定特殊地址
本包目录(177 条)
掩码与 CIDR 速算50 条
私网与特殊地址45 条
子网划分方法与例题40 条IPv6 与下一代网络42 条

用 Python ipaddress 判定特殊地址

ipaddress 模块内置特殊地址属性:is_private / is_global / is_loopback / is_link_local / is_multicast / is_reserved;is_private 的语义是“非全球地址”,与 RFC1918 私网不完全等价。

IP 与子网速查网络更新于 2026-10-12
is_private非全球地址集合(含 TEST-NET、240/4 等)
is_global可全球路由(更接近“公网地址”语义)
is_loopback127.0.0.0/8、::1
is_link_local169.254.0.0/16、fe80::/10

典型判定(本环境实测)

典型判定(本环境实测)
import ipaddress as ip
ip.ip_address('100.64.0.1').is_private     # False
ip.ip_network('192.0.2.0/24').is_private   # True
ip.ip_network('198.18.0.0/15').is_private  # True
ip.ip_address('8.8.8.8').is_global         # True
不要用 is_private 做 RFC1918 判断:应显式比对 10/8、172.16/12、192.168/16 三个网段。

易错点

  • 用 is_private 当“内网白名单”:会放进 192.0.2.x、240/4 等段
  • 用 is_global=False 判定“必为内网”:100.64.x 也 False 但不是私网

数据来源与参考

  • Python ipaddress 官方文档
  • RFC 6890(特殊用途语义)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌