Я пытаюсь использовать «новый» is_global метод python для определения того, какой IP-адрес выделен для общедоступных сетей (https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.is_global). Однако это не работает:Python3 проверить, является ли ip-адрес глобальным
>>> 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.
Любые идеи?
Хм. Я могу подтвердить, что все другие атрибуты, перечисленные в [docs] (https://docs.python.org/3/library/ipaddress.html), существуют и могут быть восстановлены за исключением 'ip.is_global'. Возможные плохие документы или ошибка? http://www.gossamer-threads.com/lists/python/bugs/1135780 – wrkyle
Вы правы. Реализация отсутствует. В основном это НЕ из is_private. Таким образом, вы можете использовать это, если вам это нужно, пока ошибка не будет исправлена. – rfkortekaas
Я посмотрел в модуле 'ipaddress.py', и он существует как функция' @ property'. Почему он не видит это при создании экземпляра класса и пытается его получить? – wrkyle