用python来控制wifi连接
生活随笔
收集整理的這篇文章主要介紹了
用python来控制wifi连接
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、python連接WiFi,需要使用pywifi包,安裝pywifi:pip install pywifi
2、判斷wifi連接狀態:
def wifi_connect_status():wifi = pywifi.PyWiFi()iface = wifi.interfaces()[0] #acquire the first Wlan card,maybe notif iface.status() in [const.IFACE_CONNECTED,const.IFACE_INACTIVE]:print("wifi connected!")return 1else:print("wifi not connected!")return 02、掃描wifi:
def scan_wifi():wifi = pywifi.PyWiFi()iface = wifi.interfaces()[0]iface.scan()time.sleep(1)basewifi = iface.scan_results()for i in basewifi:print("wifi scan result:{}".format(i.ssid))print("wifi device MAC address:{}".format(i.bssid))return basewifi3、連接指定的wifi:
# Define interface status. IFACE_DISCONNECTED = 0 IFACE_SCANNING = 1 IFACE_INACTIVE = 2 IFACE_CONNECTING = 3 IFACE_CONNECTED = 4# Define auth algorithms. AUTH_ALG_OPEN = 0 AUTH_ALG_SHARED = 1# Define auth key mgmt types. AKM_TYPE_NONE = 0 AKM_TYPE_WPA = 1 AKM_TYPE_WPAPSK = 2 AKM_TYPE_WPA2 = 3 AKM_TYPE_WPA2PSK = 4 AKM_TYPE_UNKNOWN = 5# Define ciphers. CIPHER_TYPE_NONE = 0 CIPHER_TYPE_WEP = 1 CIPHER_TYPE_TKIP = 2 CIPHER_TYPE_CCMP = 3 CIPHER_TYPE_UNKNOWN = 4# KEY_TYPE_NETWORKKEY = 0 # KEY_TYPE_PASSPHRASE = 1 def connect_wifi():wifi = pywifi.PyWiFi()ifaces = wifi.interfaces()[0]print(ifaces.name()) #輸出無線網卡名稱ifaces.disconnect()time.sleep(3)profile = pywifi.Profile() #配置文件profile.ssid = "123_wifi" #wifi名稱profile.auth = const.AUTH_ALG_OPEN #需要密碼profile.akm.append(const.AKM_TYPE_WPA2PSK) #加密類型profile.cipher = const.CIPHER_TYPE_CCMP #加密單元profile.key = "88888888" #wifi密碼ifaces.remove_all_network_profiles() #刪除其它配置文件tmp_profile = ifaces.add_network_profile(profile) #加載配置文件ifaces.connect(tmp_profile)time.sleep(5)isok = Trueif ifaces.status() == const.IFACE_CONNECTED:print("connect successfully!")else:print("connect failed!")time.sleep(1)return isok完整的測試代碼:
#-*-coding:utf-8-*-import pywifi,time from pywifi import constdef wifi_connect_status():wifi = pywifi.PyWiFi()iface = wifi.interfaces()[0] #acquire the first Wlan card,maybe notif iface.status() in [const.IFACE_CONNECTED,const.IFACE_INACTIVE]:print("wifi connected!")return 1else:print("wifi not connected!")return 0def scan_wifi():wifi = pywifi.PyWiFi()iface = wifi.interfaces()[0]iface.scan()time.sleep(1)basewifi = iface.scan_results()for i in basewifi:print("wifi scan result:{}".format(i.ssid))print("wifi device MAC address:{}".format(i.bssid))return basewifidef connect_wifi():wifi = pywifi.PyWiFi()ifaces = wifi.interfaces()[0]print(ifaces.name()) #輸出無線網卡名稱ifaces.disconnect()time.sleep(3)profile = pywifi.Profile() #配置文件profile.ssid = "123_wifi" #wifi名稱profile.auth = const.AUTH_ALG_OPEN #需要密碼profile.akm.append(const.AKM_TYPE_WPA2PSK) #加密類型profile.cipher = const.CIPHER_TYPE_CCMP #加密單元profile.key = "88888888" #wifi密碼ifaces.remove_all_network_profiles() #刪除其它配置文件tmp_profile = ifaces.add_network_profile(profile) #加載配置文件ifaces.connect(tmp_profile)time.sleep(5)isok = Trueif ifaces.status() == const.IFACE_CONNECTED:print("connect successfully!")else:print("connect failed!")time.sleep(1)return isokdef main():print("start")wifi_connect_status()scan_wifi()connect_wifi()print("finish!")if __name__ == "__main__":main()總結
以上是生活随笔為你收集整理的用python来控制wifi连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汉语编程的未来(上帝启示录)
- 下一篇: vs2017python如何打包exe_