我正在尝试使用Python的“new” is_global方法来确定IP地址是否分配给公共网络(https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_global)。然而,这并不起作用:
>>> import ipaddress
>>> ip = ipaddress.IPv4Address('192.0.2.1')
>>> ip.is_private
True
>>> ip.is_reserved
False
>>> ip.is_global
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'IPv4Address' object has no attribute 'is_global'
>>>
如上所示,其他方法如 is_private 工作正常。我使用的是 Python 3.5.1。
有什么见解吗?
ip.is_global
除外。可能是文档错误或者是bug?http://www.gossamer-threads.com/lists/python/bugs/1135780 - wrkyleipaddress.py
模块,它作为一个@property
函数存在。但为什么在创建类的实例并尝试检索时,它却找不到呢? - wrkyle.pyc
文件,这让我觉得编译版本中可能有一些东西没有实现。你可能无法获得这个属性。看起来没有绕过它的方法;它只是没有被实现。另外,@rfkortekaas,我想你看的是IPv6类。IPv4类对于is_global
有稍微复杂一些的返回值。 - wrkyle