[scan] wifi
This commit is contained in:
parent
19eea8ffcb
commit
9d5ec815d5
69
scan_wifi.py
69
scan_wifi.py
|
@ -1,4 +1,71 @@
|
|||
from wifi_manager import scan_wifi
|
||||
import wifi_manager
|
||||
|
||||
|
||||
def scan_wifi():
|
||||
try:
|
||||
subprocess.run(['nmcli', 'dev', 'wifi', 'rescan'], check=True)
|
||||
cmd = "nmcli dev wifi"
|
||||
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"{datetime.datetime.now()}: Error scanning Wi-Fi: {e}")
|
||||
network_error_light_1()
|
||||
return []
|
||||
print(f"{datetime.datetime.now()}: Wi-Fi scan complete...")
|
||||
ssid_list = []
|
||||
wifi_list = []
|
||||
output = result.stdout.strip()
|
||||
lines = output.split("\n")[1:] # Skip the header line
|
||||
for line in lines:
|
||||
columns = line.split()
|
||||
'''
|
||||
'''
|
||||
print(columns)
|
||||
for i, column in enumerate(columns):
|
||||
print(f"{i}: {column}")
|
||||
|
||||
# ['94:14:57:15:13:50', 'Meeting', 'MG', 'Infra', '1', '130', 'Mbit/s', '100', '****', 'WPA1', 'WPA2']
|
||||
|
||||
# 提取MAC地址
|
||||
mac_address = columns[0]
|
||||
|
||||
# 提取Wi-Fi名称
|
||||
wifi_name = []
|
||||
for i in range(1, len(columns)):
|
||||
if columns[i] == 'Infra':
|
||||
_wifi_name = ' '.join(columns[1:i])
|
||||
wifi_name.append(_wifi_name)
|
||||
columns = columns[i+1:]
|
||||
break
|
||||
ssid = wifi_name[0]
|
||||
if ':' in ssid:
|
||||
# 94:14:57:15:13:50 Meeting
|
||||
# 去除mac地址
|
||||
ssid = ssid.split(' ')[1:]
|
||||
ssid = ''.join(ssid)
|
||||
|
||||
if ssid in ssid_list:
|
||||
continue
|
||||
ssid_list.append(ssid)
|
||||
|
||||
# 提取强度
|
||||
strength = None
|
||||
for i in range(len(columns)):
|
||||
if columns[i] == 'Mbit/s':
|
||||
strength = columns[i+1]
|
||||
break
|
||||
print("MAC地址:", mac_address)
|
||||
print("Wi-Fi名称:", ssid)
|
||||
print("强度:", strength)
|
||||
|
||||
wifi_list.append({'ssid': ssid, 'signal': strength, 'mac': mac_address})
|
||||
if len(wifi_list) == 15:
|
||||
break
|
||||
with open('scaned_wifi_list.json', 'w') as f:
|
||||
json.dump(wifi_list, f)
|
||||
print(f"{datetime.datetime.now()}: Wi-Fi scaned list: {wifi_list}")
|
||||
|
||||
|
||||
return wifi_list
|
||||
|
||||
if __name__ == '__main__':
|
||||
wifi_list = scan_wifi()
|
Loading…
Reference in New Issue