python - 套接字错误 - python

标签 python sockets

我想获取本地私有(private)机器的地址,运行以下代码:

socket.gethostbyaddr(socket.gethostname())

给出错误:

socket.herror: [Errno 2] Host name lookup failure

我知道我可以通过使用查看本地机器的地址

socket.gethostbyname(socket.gethostname())

但它显示了我的网络(或机器)的公共(public)地址,而 ifcofig 显示了我的 wlan 的另一个地址。有人可以帮我解决这个问题吗?谢谢

最佳答案

我相信您会找到 netifaces在这里更有用。

它似乎是一个处理网络接口(interface)的跨平台库。

示例:

>>> 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.

关于python - 套接字错误 - python ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23807500/

相关文章:

python - Tkinter:消息小部件中 anchor 选项的正确值是多少?

c# - 使用 react 套接字重复连接/断开时出现内存泄漏

python - 将数组转换为字符串格式 - Python

c# - 为什么 TcpClient.Write 在写入关闭的连接(第一次)时不会抛出异常?

python - 如何在 pygame 中使正方形和圆形之间发生碰撞来触发游戏结束?

Python:MySQL批量插入,跳过外键约束失败的条目

python - WebSockets 和 WSGI 通过 Gunicorn 结合在一起

javascript - Raspberry Pi 上的 Web 界面

c# - 使用套接字响应客户端?

c# - 如何检测来自远程主机的连接关闭