如何使用Python获取默认网关IP?
我想使用Python获取默认网关的IP(内部路由器IP)。我对 Python 很陌生,所以不确定它是如何工作的。
我知道你可以通过以下方式获取你机器的IP:
import socket
internal_ip = socket.gethostbyname(socket.gethostname())
print internal_ip
所以我想它一定是类似的东西?
I want to get the IP of the default gateway (internal router IP) using Python. I'm really new to Python so not sure how this works.
I know you can get the IP of your machine with:
import socket
internal_ip = socket.gethostbyname(socket.gethostname())
print internal_ip
So I'm thinking it must be something similar?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 Windows 上,您应该使用 WMI 以及适当的查询来查找对象的属性(例如网络设备)。以下 Python 代码在我的 Windows 7 计算机上打印 IPv4 和默认网关地址:
代码:
输出:
您可以在 上找到在网络设备上执行 WMI 操作的更多详细信息和技巧。 a href="http://technet.microsoft.com/en-us/library/dd315292.aspx" rel="nofollow noreferrer">此页面。
对于 Linux,PyNetInfo 如 此页面将是一个很好的方法。尽管在 Linux 上,您可以通过阅读 PROC 条目等来避免依赖附加模块
导入操作系统; os.system(...)
技巧。On Windows, you should use WMI along with proper query to lookup properties of an object (e.g. network devices). The following Python code prints IPv4 and default gateway addresses on my Windows 7 machine:
Code:
Output:
You can find more details and tricks of performing WMI operations on network devices on this page.
For Linux, PyNetInfo as suggested on this page would be a good approach. Although on Linux you can get around having to depend on an additional module by reading PROC entries among other
import os; os.system(...)
tricks.