import subprocess import re def search_wifi(): # WiFi 네트워크 검색 result = subprocess.check_output(['sudo','iwlist', 'wlan0', 'scan']) networks = re.findall("ESSID:\"(.+?)\"", str(result)) return networks def connect_wifi(ssid, password): config_path = '/etc/wpa_supplicant/wpa_supplicant.conf' # wpa_supplicant.conf 파일 읽기 with open(config_path, 'r') as file: lines = file.readlines() # 기존 네트워크 설정 주석 처리 new_lines = [] network_block = False for line in lines: if line.strip().startswith('network={'): network_block = True if network_block: if line.strip().startswith('}'): network_block = False # 기존 네트워크 블록을 주석 처리 line = '#' + line new_lines.append(line) # 새로운 네트워크 설정 추가 new_network = f'\nnetwork={{\n\tssid="{ssid}"\n\tpsk="{password}"\n\tkey_mgmt=WPA-PSK\n}}\n' new_lines.append(new_network) # 수정된 내용을 파일에 다시 쓰기 with open(config_path, 'w') as file: file.writelines(new_lines) # 네트워크 인터페이스 재시작 subprocess.call(['sudo','wpa_cli', '-i', 'wlan0', 'reconfigure']) if __name__ == "__main__": networks = search_wifi() print("사용 가능한 WiFi 네트워크:") for i, ssid in enumerate(networks): print(f"{i + 1}. {ssid}") choice = int(input("연결할 네트워크 번호를 선택하세요: ")) password = input("WiFi 비밀번호를 입력하세요: ") connect_wifi(networks[choice - 1], password) print("WiFi 네트워크가 변경되었습니다.")