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()