在这个问题中,我处理的是 IPv6 网络地址空间,所以长度是2^(128-subnet)
.
看来python(至少在这台机器上)将处理多达 64 位有符号数作为来自__len__()
. 所以len(IP('2001::/66'))
有效,但len(IP('2001::/65'))
失败了。
from IPy import IP
len(IP('2001::/64'))
Traceback (most recent call last):
File "test.py", line 2, in <module>
len(IP('2001::/64'))
OverflowError: long int too large to convert to int
有问题的 IPy 库位于https://github.com/haypo/python-ipy。
关于如何处理这个问题的任何建议,或者暗示这可能是我坚持的限制?