python NetAddress IP网络
我有一个要更改的IP地址,并希望该值作为IP网络返回 所以 结果 192.168.0.2/24在没有网络掩码的情况下,目前的结果是192.168.0.2python NetAddress IP网络,python,python-2.7,python-3.x,network-programming,Python,Python 2.7,Python 3.x,Network Programming,我有一个要更改的IP地址,并希望该值作为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(a
我已经设法做了我需要做的事情如下
>>> 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')
>>>
有更好的方法吗?我真的不明白为什么要将掩码从网络添加到(主机)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')
>>>
我认为你需要进一步阐述你的问题。很不清楚你在问什么。你想干什么?ip[2]应该做什么?
>>> net = IPNetwork("192.168.0.0/24")
>>> net.value += 2
>>> net
IPNetwork('192.168.0.2/24')
>>>