Windows - Python netfaces giver usædvanlig output

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har brugt netfaces i fortiden uden problemer, men for nylig er noget ændret. Jeg er ikke sikker på om det er windows 10 fejl eller pythons eller måske netfaces selv. Anyways her er hvad der sker.


Ifølge docs koden:


import netifaces

netifaces.interfaces()


Skal give mig resultatet svarende til dette:


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


Mens jeg i mit tilfælde er, hvad jeg får, er:


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


På dette tidspunkt ved jeg ikke, hvad jeg har at gøre med og hvad man skal vælge næste. Men ved tilfældigt brug af nogle af resultaterne som denne:


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


Returnerer også nogle slags 'krypterede' resultater:


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


I stedet for den måde, det præsenteres i docs (ser mere brugervenligt ud, gør det ikke?):


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


Kan nogen forklare mig, hvad der sker, og hvordan 'dechifter' disse resultater? Hvad jeg forsøger at gøre til sidst er at få ip-adresser på alle netværksgrænseflader, som min pc bruger.


BEMÆRK: Python 3.6, Netifaces 0.10.5, Windows 10

Bedste reference


['lo0', 'gif0', 'stf0', 'en0', 'en1', 'fw0'] er navne på NIC'er i unix-systemer. På Windows får du GUID af netværksgrænsefladen.
For at få det såkaldte 'venlige navn' kan du kigge op i Windows-registreringsdatabasen. Tjek dette svar (på min python 2.7 Jeg måtte importere \_winreg i stedet for winreg). [10]