englishtokorea/wifi_setup.py
2025-05-28 14:26:49 +09:00

54 lines
1.7 KiB
Python

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 네트워크가 변경되었습니다.")