簡體   English   中英

Python netifaces提供異常輸出

[英]Python netifaces giving unusual output

我過去一直在使用netifaces,沒有問題,但最近有所變化。 我不確定是Windows 10錯誤還是python或netifaces本身。 無論如何,這是發生了什么。

根據文檔的代碼:

import netifaces

netifaces.interfaces()

應該給我類似的結果:

['lo0', 'gif0', 'stf0', 'en0', 'en1', 'fw0']

在我看來,我得到的是:

['{E3EE4C5B-38D5-4E38-ABD3-912690B3333B}', '{07ED21E7-D11D-4FAE-BCAB-00748015A895}', '{9F401909-A4A5-4AB6-8617-DFA205446FC6}', '{073251CD-250D-4FAA-889A-560941A96782}', '{6613CF18-67E7-4499-8716-58EEC449E5C6}', '{C1568B39-575B-46B3-8EA7-95A7DBA33DD0}', '{F7F856C1-2EEE-4291-B42C-444C28D7C389}', '{2FD83117-396D-11E7-81F5-806E6F6E6963}']

在這一點上,我不知道我要處理什么以及下一步要選擇什么。 但是隨機使用以下任何結果:

netifaces.ifaddresses('{07ED21E7-D11D-4FAE-BCAB-00748015A895}')

還返回某種“加密”結果:

{-1000: [{'addr': 'fc:f8:ae:15:6f:0e'}], 23: [{'addr': 'fe80::ec58:f02f:37d0:598b%4', 'netmask': 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128', 'broadcast': 'fe80::ec58:f02f:37d0:598b%4'}]}

而不是在文檔中呈現的方式(看起來更加用戶友好,不是嗎?):

{18: [{'addr': ''}], 2: [{'peer': '127.0.0.1', 'netmask': '255.0.0.0', 'addr': '127.0.0.1'}], 30: [{'peer': '::1', 'netmask': 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', 'addr': '::1'}, {'peer': '', 'netmask': 'ffff:ffff:ffff:ffff::', 'addr': 'fe80::1%lo0'}]}

有人可以向我解釋一下正在發生什么以及如何“解讀”這些結果嗎? 最后,我想做的是獲取我的PC正在使用的所有網絡接口的IP地址。

注意:Python 3.6,Netifaces 0.10.5,Windows 10

['lo0', 'gif0', 'stf0', 'en0', 'en1', 'fw0']是UNIX系統中NIC的名稱。 在Windows上,您將獲得網絡接口的GUID 要獲得所謂的“友好名稱”,您可以查找Windows注冊表。 看看這個答案 (在我的python 2.7上,我必須導入_winreg而不是winreg )。

暫無
暫無

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

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