我要检查IP地址是私有的还是保留的(例如,多播地址空间)。
我的Methode目前看起来像这样:
def __IP4_POR(ip):
if(ipaddress.ip_address(ip).is_private or
ipaddress.ip_address(ip).is_reserved or
ipaddress.ip_address(ip).is_multicast): return str(1)
else: return str(0);
所以问题是,如果IP范围为100.64.0.0/10,则python编译器将向我返回0。
问题是:为什么编译器返回0?因为当我查看IANA IPv4专用地址注册表时,发现IP地址必须符合保留的IETF RFC6598,编译器应返回1而不是0。
这可能是python lib中的错误吗?
希望您能给我一些解释。
谢谢!
编辑:我正在使用Python 3.6.5
答案 0 :(得分:0)
从ipaddress模块不保留100.64.0.0/10。保留的IP地址只有240.0.0.0/4。