diff --git a/scan_wifi.py b/scan_wifi.py index c718806..7058266 100644 --- a/scan_wifi.py +++ b/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() \ No newline at end of file