【发布时间】:2019-08-12 19:27:07
【问题描述】:
如何使用 python 从计算机(Windows)获取我的 IP 地址和子网掩码?
【问题讨论】:
-
你在这里问了2个问题:1.你如何在Python中获得内部IP和子网掩码。 2. 如何将 IP + 子网掩码转换为 IP/CIDR。我相信这两个问题都有很好的重复
标签: python networking ip subnet
如何使用 python 从计算机(Windows)获取我的 IP 地址和子网掩码?
【问题讨论】:
标签: python networking ip subnet
对于第二个问题,您可以这样做:
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,我认为可以找到更好的解决方案。
【讨论】: