Kann mir jemand verraten wie ich unter Python 3.5.2 die aktive SSID meiner WLAN Verbindung auslesen kann?
Mit psutil oder netiface bekomme ich die IP Informationen aber leider nicht die SSID den Verschlüsselungsstatus
(unverschlüsselt, WEP, WPA/WPA2).
Der Code unten zeigt mir zumindest schon mal die grundlegenden Informationen an, für das WLAN würde ich halt
gerne noch die SSID etc. mit in die Ausgabe packen.
Das Programm soll unabhängig vom Betriebssystem laufen, da ich sowohl mit Window (7 und 10) als auch mit
Linux (Debian und RedHat) arbeite.
Bin für jeden Hinweis dankbar.
Code: Alles auswählen
import psutil
import socket
import netifaces
IF_DATA = {
'Address' : '',
'Netmask' : '',
'Broadcast' : '',
'Duplex' : '',
'Speed' : '',
}
Interface = {}
IF_ID = psutil.net_if_stats()
IF_ADDR = psutil.net_if_addrs()
for i in IF_ADDR:
if IF_ID[i][0] and IF_ID[i][2]>0: # IF is up and has a speed
for j in range(0,len(IF_ADDR[i])):
if IF_ADDR[i][j].family == socket.AF_INET: # IF uses IPv4
IF_DATA['Address'] = IF_ADDR[i][j][1] # set address
IF_DATA['Netmask'] = IF_ADDR[i][j][2] # set netmask
IF_DATA['Duplex'] = str(IF_ID[i][1]).split(".")[1] # set duplex mode
IF_DATA['Speed'] = IF_ID[i][2] # set speed
Interface[i] = IF_DATA.copy()
NI_ADDR = netifaces.interfaces()
for n in NI_ADDR:
addr = netifaces.ifaddresses(n)
if 2 in addr.keys():
for i in Interface:
if Interface[i]['Address'] == addr[2][0]["addr"]:
Interface[i]['Broadcast'] = addr[2][0]["broadcast"] # set broadcast address
for i in Interface:
print(i)
print(' Address :',Interface[i]['Address'])
print(' Netmask :',Interface[i]['Netmask'])
print(' Broadcast :',Interface[i]['Broadcast'])
print(' Duplex :',Interface[i]['Duplex'])
print(' Speed :',Interface[i]['Speed'])