我想获取本地私有计算机的地址,并运行以下代码:
socket.gethostbyaddr(socket.gethostname())
给出错误:
socket.herror: [Errno 2] Host name lookup failure
我知道我可以通过使用查看本地计算机的地址
socket.gethostbyname(socket.gethostname())
但是它显示了我的网络(或计算机)的公共地址,而ifcofig显示了我的wlan的另一个地址。有人可以帮助我解决这个问题吗?谢谢
我相信您会在这里找到更多有用的netifaces。
它似乎是处理网络接口的跨平台库。
例:
>>> from netifaces import interfaces, ifaddresses
>>> interfaces()
['lo', 'sit0', 'enp3s0', 'docker0']
>>> ifaddresses("enp3s0")
{17: [{'broadcast': 'ff:ff:ff:ff:ff:ff', 'addr': 'bc:5f:f4:97:5a:69'}], 2: [{'broadcast': '10.0.0.255', 'netmask': '255.255.255.0', 'addr': '10.0.0.2'}], 10: [{'netmask': 'ffff:ffff:ffff:ffff::', 'addr': '2001:470:edee:0:be5f:f4ff:fe97:5a69'}, {'netmask': 'ffff:ffff:ffff:ffff::', 'addr': 'fe80::be5f:f4ff:fe97:5a69%enp3s0'}]}
>>>
>>> ifaddresses("enp3s0")[2][0]["addr"]
'10.0.0.2' # <-- My Desktop's LAN IP Address.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句