我想在Python中编写一个IP地址程序。但是,当我使用小于7的掩码来获取网络ID时,我会得到奇怪的数字。例如,对于IP地址164.36.32.32
和子网掩码6
,我得到43.0.0.0
。请注意,netmask
包含二进制的整个IP地址。二进制字符串
if mask<=8:
print int(netmask[0:mask],2),".0.0.0"
elif mask>8 and mask<=16:
print int(netmask[0:8],2),".",int(netmask[8:mask],2)
elif mask>16 and mask<=24:
print int(netmask[0:8],2),".",int(netmask[8:16],2),".",int(netmask[16:mask],2)
elif mask>24 and mask<=32:
print int(netmask[0:8],2),".",int(netmask[8:16],2),".",int(netmask[16:24],2),".",int(netmask[24:mask],2),
你可能想看看[IPy](https://pypi.python.org/pypi/IPy/)。它会做你想要的,然后再做一些 – RedBaron