gpt4 book ai didi

python - python中ipv4子网掩码点分二进制的函数生成

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:24 26 4
gpt4 key购买 nike

我遇到了以下问题:给出了 ipv4 子网掩码中设置的位数我反复编码

 def calculateSnmFromNBits(self):
s = ""
for i in xrange(35):
if i + 1 % 9 == 0:
s += '.'
if i < self.nBits:
self.nBits += 1
elif i < self.nBits:
s += '1'
else:
s += '0'
return s

我尝试了列表理解,但我需要一个 elif 来插入点所以我只能这样做

['1' if i < nBits else '0' for i in xrange(32)] #missing the dots

谢谢

最佳答案

nBits=27
print '.'.join((('1'*nBits+'0'*(32-nBits))[i:i+8]) for i in (0,8,16,24))

结果:

11111111.11111111.11111111.11100000

或者,

print '.'.join(str(((0xFFFFFFFF& (~((1<<(32-nBits))-1)))>>(i*8))&255) for i in range(3,-1,-1))
255.255.255.224

或者,

import ipaddress
print(str(ipaddress.ip_network('0.0.0.0/%s'%nBits).netmask))

关于python - python中ipv4子网掩码点分二进制的函数生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29568023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com