python中是否有一种方法可以访问Windows中名为"网络连接"的IP地址?例如:"以太网"或"本地连接"



前几天我刚开始使用Python,所以如果这是一个愚蠢的问题,请原谅我。我正在通过Tkinter创建一个小型的功能性窗口应用程序,它可以让我和我的同事只需点击一个按钮就可以快速更改我们的IP地址。这个功能已经起作用了,但是,我想在我的窗口中创建一个标签,在打开应用程序并单击按钮更改IP以显示它确实起作用时,显示计算机的以太网IP地址。我发现了一个名为";Iaddr";我认为会起作用,但不是像";以太网";或";"局域网连接";它显示适配器名称,如";Realtek PCIe 2.5GbE系列控制器";。唯一的问题是,并不是我所有的同事都有带Realtek控制器的笔记本电脑,有些是英特尔或你的。任何解决方案都将不胜感激。

感谢@acw1668的评论,但我认为我可能找到了比这些答案更好的解决方案。我找到了这篇文章https://janakiev.com/blog/python-shell-commands/在阅读之后,我尝试使用os.popen命令,它运行得很好,最棒的是你可以使用标准库来实现我想要的。这里有一个例子:

import os
ethernetset1=os.popen("netsh interface ip show addresses Ethernet").read().split('n')
print (ethernetset1)

结果是:

['', 'Configuration for interface "Ethernet"', '    DHCP enabled:                         No', '    IP Address:                           10.74.126.120', '    Subnet Prefix:                        10.74.124.0/22 (mask 255.255.252.0)', '    Default Gateway:                      0.0.0.0', '    Gateway Metric:                       1', '    InterfaceMetric:                      35', '', '']

在我看来,这很好,因为你可以打印关于连接名称的所有细节,甚至可以访问列表元素来获得你想要的东西(IP、网关、掩码(。这是最理想的方法吗?我不能回答这个问题,因为我是编程的新手。希望这对将来的某个人有所帮助。

最新更新