使用 Python 的 stdlib 查找本地 IP 地址

新手上路,请多包涵

如何在 Python 平台中仅使用标准库独立查找本地 IP 地址(即 192.168.xx 或 10.0.xx)?

原文由 UnkwnTech 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 448
2 个回答
import socket
socket.gethostbyname(socket.gethostname())

这不会总是有效(返回 127.0.0.1 在主机名在 /etc/hosts 的机器上作为 127.0.0.1 ),缓和将是 gimel 显示的,使用 socket.getfqdn() 代替。当然,您的机器需要一个可解析的主机名。

原文由 Vinko Vrsalovic 发布,翻译遵循 CC BY-SA 3.0 许可协议

我刚发现这个,但它看起来有点老套,但是他们说在 *nix 上试过,我在 Windows 上试过,而且它有效。

 import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])
s.close()

这假设您可以访问 Internet,并且没有本地代理。

原文由 UnkwnTech 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题