Python中pywifi模块的基本用法讲解

作者:gc_2299 时间:2023-09-23 00:21:00 

  跨平台的pywifi模块支持操作无线网卡,该模块易于使用,同时支持Windows、Linux等多个系统。pywifi模块不是Python的标准模块,需单独安装,同时该模块依赖comtypes模块,最好同时安装comtypes模块,否则调用pywifi的函数时可能会报错。

pip install comtypes
pip install pywifi

  pywifi模块中的类不算太多,其中主要用到的类包括PyWiFi、Profile、Interface等,详述如下:
  PyWiFi类用于操作无线设备,该类的主要函数interfaces返回可用的无线网卡集合,也即Interface对象集合。
  Profile类表示无线接入点(AP),也即无线网卡搜索出的无线连接,一个Profile对象表示一个可以连接或可用的无线连接,Profile类的主要属性如下表所示:

序号属性名说明
1ssid无线网络名称
2auth认证算法,包括AUTH_ALG_OPEN、.AUTH_ALG_SHARED两种,默认为AUTH_ALG_OPEN,关于认证算法的介绍详见参考文献5
3akm授权密钥管理方式,包括AKM_TYPE_NONE、AKM_TYPE_WPA、AKM_TYPE_WPAPSK、AKM_TYPE_WPA2、AKM_TYPE_WPA2PSK、AKM_TYPE_UNKNOWN,默认为AKM_TYPE_NONE,关于授权密钥管理方式详见参考文献6-7
4cipher密码类型,包括CIPHER_TYPE_NONE、CIPHER_TYPE_WEP、CIPHER_TYPE_TKIP、CIPHER_TYPE_CCMP、CIPHER_TYPE_UNKNOWN,默认为CIPHER_TYPE_NONE
5key无线网络连接密码,如果密码类型不未CIPHER_TYPE_NONE,则应设置本属性值

  ;Interface类用于执行无线网络操作,主要包括以下函数:

序号函数名说明
1name获取无线网卡名称
2scan调用无线网卡扫描可用的无线网络(AP)
3scan_results获取scan函数的扫描结果,返回的是Profile对象列表
4add_network_profile添加特定无线网络(AP)以便后续连接
5remove_network_profile移除指定的无线网络(AP)
6remove_all_network_profiles移除所有无线网络(AP)
7network_profiles获取保存的所有无线网络(AP)
8connect连接指定的无线网络(AP)
9disconnect断掉当前无线网络连接
10status获取当前无线网络连接状态

  最后是照着参考文献3编写的测试程序(测试前请确保已记住当前计算机连接的wifi密码)

import pywifi

wifi = pywifi.PyWiFi()
iface = wifi.interfaces()[0]

print('interface name: ',iface.name())
print('interface status: ',iface.status())

iface.disconnect()
print('interface status: ',iface.status())

profile = pywifi.Profile()
profile.ssid = "XXXXXXX"
profile.auth = pywifi.const.AUTH_ALG_OPEN
profile.akm.append(pywifi.const.AKM_TYPE_WPA2PSK)
profile.cipher = pywifi.const.CIPHER_TYPE_CCMP
profile.key = 'XXXXXXX'
iface.remove_all_network_profiles()
tep_profile = iface.add_network_profile(profile)
iface.connect(tep_profile)

sleep(5)
print('interface status: ',iface.status())

参考文献
[1]https://github.com/awkman/pywifi
[2]https://github.com/awkman/pywifi/blob/master/DOC.md
[3]https://blog.csdn.net/Feng_liangmu/article/details/122911002
[4]https://docs.python.org/zh-cn/3/index.html
[5]https://www.likecs.com/show-655827.html
[6]https://www.likecs.com/show-655827.html
[7]https://code84.com/739564.html

来源:https://blog.csdn.net/gc_2299/article/details/128058252

标签:Python,pywifi,模块
0
投稿

猜你喜欢

  • Python函数参数和注解的使用

    2021-09-23 17:34:50
  • Python tkinter实现计算器功能

    2023-06-29 15:41:29
  • python实现多线程抓取知乎用户

    2021-10-05 16:56:07
  • python的urllib模块显示下载进度示例

    2023-06-13 17:06:31
  • python调用subprocess模块实现命令行操作控制SVN的方法

    2022-07-18 02:01:03
  • 使用keras2.0 将Merge层改为函数式

    2021-01-14 08:29:46
  • Python写一个简单的在线编辑器

    2022-07-26 22:49:17
  • OpenCV图像颜色反转算法详解

    2022-04-25 16:19:31
  • python的Template使用指南

    2023-10-14 01:30:58
  • python根据开头和结尾字符串获取中间字符串的方法

    2021-01-02 01:44:28
  • python第三方库pygame的使用详解

    2023-07-21 13:27:19
  • 解析xml字符串的函数

    2008-06-10 12:37:00
  • Mysql获取当前日期的前几天日期的方法

    2024-01-16 01:22:31
  • 在PyCharm导航区中打开多个Project的关闭方法

    2022-08-11 01:39:11
  • js用typeof方法判断undefined类型

    2024-04-19 09:53:43
  • 基于Python实现Hash算法

    2023-09-21 17:29:58
  • MySQL中修改表结构时需要注意的一些地方

    2024-01-29 09:04:11
  • 一些你可能不熟悉的JS知识点总结

    2024-04-17 09:46:24
  • CSS改变字体而不影响网页

    2010-10-20 20:11:00
  • python创造虚拟环境方法总结

    2021-08-26 18:46:41
  • asp之家 网络编程 m.aspxhome.com