python - python中是否有一种方法可以访问Windows中名为“网络连接”的IP地址?例如:“以太网”或“本地连接”
问题描述
前几天我刚开始使用 Python,如果这是一个愚蠢的问题,请原谅我。我正在通过 Tkinter 创建一个小型功能性 Windows 应用程序,它可以让我和我的同事通过单击按钮快速更改我们的 IP 地址。此功能已经有效,但是,我想在我的窗口中创建一个标签,在打开应用程序并单击按钮更改 IP 以显示它确实有效时显示计算机的以太网 IP 地址。我发现了一个我认为可以使用的名为“Ifaddr”的库,但它没有显示“以太网”或“本地连接”之类的连接名称,而是显示了“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、网关、掩码)。这是最理想的方法吗?我无法回答这个问题,因为我通常是编程新手。希望这将有助于将来的某人。
推荐阅读
- python - 比较两个 txt.files 的内容以查找已删除的行或 python 中的更改
- javascript - 反应功能组件中的事件监听器
- javascript - 尝试更改烧瓶应用程序的 CSS 中的背景渐变
- amazon-web-services - Kinesis 流同时有多个目的地
- html - 造型
邮件 CSS 中的标签和文本 - mysql - 如何为包含有序列表记录的 MySQL 表建模?
- css - 为什么“溢出-x:隐藏”也隐藏溢出-y?
- amazon-web-services - 如何在 AWS CloudFormation 部署中将参数作为文件传递?
- sql - 按月计算当前项目
- python - 使用 Python 进行列表理解时出现错误的语法错误