Python:IP地址。地址值错误:至少需要3个零件

2024-09-26 22:55:24 发布

您现在位置:Python中文网/ 问答频道 /正文

属性ipaddress.IPv4Network可用于检查是否保留了任何IP地址。在

在IPython中:

In [52]: IPv4Address(u'169.254.255.1').is_private
Out[52]: False

但是如果我在函数中尝试同样的方法:

^{pr2}$

我得到:

  File "isPrivateIP.py", line 13, in <module>
    print isPrivateIp(ur'169.254.255.1')
  File "isPrivateIP.py", line 7, in isPrivateIp
    if ipaddress.IPv4Network(unicoded).is_private or ipaddress.IPv6Network(unicoded).is_private:
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ipaddress.py", line 2119, in __init__
    self.network_address = IPv6Address(self._ip_int_from_string(addr[0]))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ipaddress.py", line 1584, in _ip_int_from_string
    raise AddressValueError(msg)
ipaddress.AddressValueError: At least 3 parts expected in u'169.254.255.1'

为什么会这样?在

注意:在python2中,ip地址必须作为unicode对象传递给ipaddress函数,因此在字符串输入ip上调用unicode()。在


Tags: 函数inpyipislinelibraryprivate

热门问题