在Python中检索网络掩码


问题内容

如何获取网络设备的网络掩码(最好是在Linux中,但是如果它是跨平台的,那么很酷)?我知道Linux上C语言的用法,但找不到Python中的方法-
也许减去ctypes。那还是解析ifconfig。还有其他方法吗?

ioctl(socknr, SIOCGIFNETMASK, &ifreq) // C version

问题答案:

在Linux上的Python 2.2中对我有用:

iface = "eth0"
socket.inet_ntoa(fcntl.ioctl(socket.socket(socket.AF_INET, socket.SOCK_DGRAM), 35099, struct.pack('256s', iface))[20:24])