簡體   English   中英

python中有沒有一種方法可以訪問Windows中名為“網絡連接”的IP地址? 例如:“以太網”或“本地連接”

[英]Is there a method in python for accessing the IP addresses of named “Network Connections” in Windows? Ex: “Ethernet” or “Local Area Connection”

我前幾天剛開始使用 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、網關、掩碼)。 這是最理想的方法嗎? 我無法回答這個問題,因為我一般不熟悉編程。 希望這會在將來對某人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM