IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 用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 not

    if iface.status() in [const.IFACE_CONNECTED,const.IFACE_INACTIVE]:
        print("wifi connected!")
        return 1
    else:
        print("wifi not connected!")
    
    return 0

2、扫描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 basewifi

3、连接指定的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 = True

    if 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 const

def wifi_connect_status():
    wifi = pywifi.PyWiFi()
    iface = wifi.interfaces()[0] #acquire the first Wlan card,maybe not

    if iface.status() in [const.IFACE_CONNECTED,const.IFACE_INACTIVE]:
        print("wifi connected!")
        return 1
    else:
        print("wifi not connected!")
    
    return 0

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 basewifi

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 = True

    if ifaces.status() == const.IFACE_CONNECTED:
        print("connect successfully!")
    else:
        print("connect failed!")

    time.sleep(1)
    return isok

def main():
    print("start")
    wifi_connect_status()
    scan_wifi()
    connect_wifi()
    print("finish!")

if __name__ == "__main__":
    main()

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-03 12:07:34  更:2021-09-03 12:09:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 7:49:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码