如何使用Python获取默认网关IP?

发布于 2024-10-15 23:54:37 字数 231 浏览 1 评论 0原文

我想使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁与争疯 2024-10-22 23:54:37

在 Windows 上,您应该使用 WMI 以及适当的查询来查找对象的属性(例如网络设备)。以下 Python 代码在我的 Windows 7 计算机上打印 IPv4 和默认网关地址:

代码:

import wmi

wmi_obj = wmi.WMI()
wmi_sql = "select IPAddress,DefaultIPGateway from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE"
wmi_out = wmi_obj.query( wmi_sql )

for dev in wmi_out:
    print "IPv4Address:", dev.IPAddress[0], "DefaultIPGateway:", dev.DefaultIPGateway[0]

输出:

IPv4Address: 192.168.0.2 DefaultIPGateway: 192.168.0.1

您可以在 上找到在网络设备上执行 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:

import wmi

wmi_obj = wmi.WMI()
wmi_sql = "select IPAddress,DefaultIPGateway from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE"
wmi_out = wmi_obj.query( wmi_sql )

for dev in wmi_out:
    print "IPv4Address:", dev.IPAddress[0], "DefaultIPGateway:", dev.DefaultIPGateway[0]

Output:

IPv4Address: 192.168.0.2 DefaultIPGateway: 192.168.0.1

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文