[英]what does mean “compatible=true”, in changing IPv4 address to IPv6 address in netaddr module in python
[英]How to get the IP prefix while we have subnet and IPv4 address using python-netaddr?
我正在使用python-netaddr库来处理IP地址和子网。 我阅读了netaddrd的完整文档: Netaddr文档 。 但没有找到解决我问题的方法。 我有一个IP地址和子网我想通过使用它们获得该IP的前缀。 这样我就可以打印所有进入子网的ip。
例如:
Ip Address: 192.0.2.0
Subnet Network: 255.255.255.0
It should return the prefix which is : 24
要获得24,您可以使用以下代码段
ip = IPNetwork('192.0.2.0/255.255.255.0')
print ip.prefixlen
但是如果你想要子网中所有地址的列表,它更容易使用:
ip = IPNetwork('192.0.2.0/255.255.255.0')
list(ip)
使用给定的Netmask,我们可以使用以下函数获取前缀:
def getPrefix(mask):
prefix = sum([bin(int(x)).count('1') for x in mask.split('.')])
return prefix
def getPrefix(binary):
prefixCount=0
for i in (str(binary)):
if(i == '1'):
prefixCount+=1
return prefixCount
如果子网转换为二进制格式并在输入中给出,这将返回“Prefixcount”。
子网掩码是:255.255.255.0这是如何ic它:1。 1。 1. 0
255是所有8位都打开。 即。 全1。 并且0表示所有8位都被关闭。 如果你看一下这个子网掩码[255.255.255.0],前三个八位字节全部变为'ON',而最后一个八位字节被'OFF'。
因此,在这种情况下,计算所有ON的八位字节,我们可以说3个八位字节:255.255.255.0 1。 1。 1 .0 8 + 8 + 8 + 0 = 24
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.