2017-06-02 2 views
0

Ich habe in der Vergangenheit mit Netifaces ohne Probleme verwendet, aber vor kurzem hat sich etwas geändert. Ich bin mir nicht sicher, ob es sich um Windows 10 Fehler oder Pythons oder vielleicht um die Neufänder selbst handelt. Wie auch immer, hier passiert was passiert.Python-Netze geben ungewöhnliche Ausgabe

den Code docs nach:

import netifaces 

netifaces.interfaces() 

Sollte geben Sie mir das Ergebnis wie folgt aus:

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

Während in meinem Fall, was ich bekommen ist:

['{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}'] 

Bei In diesem Punkt weiß ich nicht, womit ich es zu tun habe und was ich als nächstes wählen soll. Jedoch unter Verwendung von nach dem Zufallsprinzip einem der Ergebnisse wie folgt aus:

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

Auch eine Art von ‚verschlüsselt‘ Ergebnisse zurückgibt:

{-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'}]} 

Statt der Art und Weise sie in docs präsentiert wird (sieht mehr benutzerfreundlich, nicht wahr?):

{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'}]} 

Kann mir jemand bitte erklären, was passiert ist und wie man ‚entschlüsseln‘ diese Ergebnisse? Was ich am Ende versuche, ist, die IP-Adressen aller Netzwerkschnittstellen zu erhalten, die mein PC benutzt.

HINWEIS: Python 3.6, Netifaces 0.10.5, 10 Windows-

Antwort

1

['lo0', 'gif0', 'stf0', 'en0', 'en1', 'fw0'] sind Namen von NICs in Unix-Systemen. Unter Windows erhalten Sie GUID der Netzwerkschnittstelle. Um einen so genannten "freundlichen Namen" zu erhalten, können Sie die Windows-Registrierung nachschlagen. Check out this answer (auf meinem Python 2.7 musste ich _winreg anstelle von winreg importieren).