python netaddr IP网络

时间:2017-02-02 13:00:01

标签: python python-2.7 python-3.x network-programming

我有一个我想要更改的IP地址,并希望该值作为IP网络返回

所以

$http.get('/loginservice.asmx/validatelogin',...)

结果

192.168.0.2/24此时结果是192.168.0.2,没有网络掩码。

我已经设法按照以下方式做我需要做的事情

addr = 192.168.0.0/24
ip = IPNetwork(addr) 
ip[2]
print ip

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我真的不明白为什么要将网络掩码添加到(host-)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')
>>>