我有一个我想要更改的IP地址,并希望这个值作为一个IP网络返回。
所以
addr = 192.168.0.0/24
ip = IPNetwork(addr)
ip[2]
print ip
结果
192.168.0.2/24目前的结果是192.168.0.2,没有网络掩码。
我已经做了我需要做的事情如下
>>> addr = IPNetwork("10.0.0.0/24")
>>> addr
IPNetwork('10.0.0.0/24')
>>> mask = addr.prefixlen
>>> intip = IPNetwork(addr[-3])
>>> intip
IPNetwork('10.0.0.253/32')
>>>
>>> intip.prefixlen = mask
>>> intip
IPNetwork('10.0.0.253/24')
>>>
有更好的办法吗?
发布于 2017-07-01 05:23:00
我不太明白为什么要将掩码从网络添加到(主机)ip,但我想最常见的方式是格式字符串:
>>> from netaddr import IPNetwork
>>> net = IPNetwork("192.168.0.0/24")
>>> print( "{0}/{1}".format(net[2], net.prefixlen) )
192.168.0.2/24
>>>
如果出于某种原因,您需要将结果作为一个IPNetwork对象(设置了主机位),您也可以这样做:
>>> net = IPNetwork("192.168.0.0/24")
>>> net.value += 2
>>> net
IPNetwork('192.168.0.2/24')
>>>
https://stackoverflow.com/questions/42002924
复制相似问题