我一定是做错了什么。。。我目前正在尝试使用内置模块验证ip是否在特定子网中。
我正在使用activepython:
ActivePython 3.1.2.3(ActiveState软件公司)基于
Python 3.1.2(r312:791472010年3月22日,12:20:29)[MSC v.1500 32位(Intel)]on win32
在变更日志中有这个:
巨蟒新闻
(编辑器:有关使用ReST编辑新闻的信息,请查看NEWS.help。)
Python3.1.2有什么新功能?
发布日期:2010-03-20
-----剪-----
已卸下IP地址模块。
问题3613:base64.{encode,decode}字符串现在被调用
系统消息:警告/2(,第706行)
-----剪-----
问题3959:已将ipaddr模块添加到标准库中。由谷歌提供。
这和其他谷歌搜索让我相信ipaddr是内置的,但是:
>>>导入IP地址
回溯(最近一次呼叫时间):
文件“”,第1行,在
importorror:没有名为ipaddr的模块
>>>从ipaddr导入*
回溯(最近一次呼叫时间):
文件“”,第1行,在
importorror:没有名为ipaddr的模块
所以我想我会安装netaddr并尝试使用它,我从netaddr得到的只有:
>>>导入netaddr
回溯(最近一次呼叫时间):
文件“”,第1行,在
文件“C:\ Python31\lib\site packages\netaddr\uu init\uuuu.py”,第18行,in
从netaddr.ip导入IPAddress、IPNetwork、IPRange、所有匹配的cidr\
文件“C:\ Python31\lib\site packages\netaddr\ip\uuu init\uuu.py”,第1877行,在
IPV6环回=IP地址('::1')
文件“C:\ Python31\lib\site packages\netaddr\ip\\uuuu init_uuu.py”,第262行,in_uuinit__
self.value=地址
文件“C:\ Python31\lib\site packages\netaddr\ip\uuuuu init_uuu.py”,第292行,在设置值中
%价值)
netaddr.core.addrformatror:检测不到IP版本:'::1'
我感到相当沮丧,我不知道从这里去哪里。。。建议?

最佳答案

ipaddr模块在3.1开发周期中添加(在alpha 2和beta 1之间),但在3.1的第一个候选版本之前删除。它不是任何发布的Python版本的标准库的一部分。您仍然可以从PyPI下载并安装它。
netaddr失败似乎是netaddr本身的一个缺陷。它尝试检测IPv6支持并失败。我猜这是模块中的一个bug,但修复或解决方法很难猜测。

关于python - python 3:ipaddr/netaddr模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2714942/

10-12 19:06