首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

网络
EN

Stack Overflow用户
提问于 2017-02-02 13:00:01
回答 1查看 582关注 0票数 0

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

所以

代码语言:javascript
运行
复制
addr = 192.168.0.0/24
ip = IPNetwork(addr) 
ip[2]
print ip

结果

192.168.0.2/24目前的结果是192.168.0.2,没有网络掩码。

我已经做了我需要做的事情如下

代码语言:javascript
运行
复制
>>> 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')
>>>

有更好的办法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-07-01 05:23:00

我不太明白为什么要将掩码从网络添加到(主机)ip,但我想最常见的方式是格式字符串:

代码语言:javascript
运行
复制
>>> 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对象(设置了主机位),您也可以这样做:

代码语言:javascript
运行
复制
>>> net = IPNetwork("192.168.0.0/24")
>>> net.value += 2
>>> net
IPNetwork('192.168.0.2/24')
>>>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42002924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档