如何使用python获取ip和子网掩码地址[关闭]

Posted

技术标签:

【中文标题】如何使用python获取ip和子网掩码地址[关闭]【英文标题】:How to get ip and subnet mask address using python [closed] 【发布时间】:2019-08-12 19:27:07 【问题描述】:

如何使用 python 从计算机(Windows)获取我的 IP 地址和子网掩码?

【问题讨论】:

你在这里问了2个问题:1.你如何在Python中获得内部IP和子网掩码。 2. 如何将 IP + 子网掩码转换为 IP/CIDR。我相信这两个问题都有很好的重复 Finding local IP addresses using Python's stdlib的可能重复 【参考方案1】:

对于第二个问题,您可以这样做:

def int_address(address):
    return list(map(int, address.split(".")))

def bit_len(mask):
    return "".join(bin(m)[2:] for m in mask).find('0')

def prefix(mask, ip):
    return ".".join(str(m & i) for m, i in zip(mask, ip))

def cidr(mask, ip):
    mask = int_address(mask)
    ip = int_address(ip)
    return prefix(mask, ip)+"/"+str(bit_len(mask))

print(cidr("255.255.255.0", "10.0.0.1"))

bit_len 有点hacky,我认为可以找到更好的解决方案。

【讨论】:

以上是关于如何使用python获取ip和子网掩码地址[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何用python脚本获取ip,掩码,地址,网段

在MFC中如何获取电脑IP 主机名 网关 MAC 子网掩码等

java如何获取子网掩码?

在linux中,啥是配置静态和动态的IP地址、子网掩码、默认网关,如何实现

Python通过snmp获取交换机VLAN号VLAN默认网关VLAN子网掩码和ARP表中的IP地址与MAC对应记录数据

在 Python 中从 IP 地址和掩码长度获取 IP 掩码