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类的主要属性如下表所示:
序号 | 属性名 | 说明 |
---|---|---|
1 | ssid | 无线网络名称 |
2 | auth | 认证算法,包括AUTH_ALG_OPEN、.AUTH_ALG_SHARED两种,默认为AUTH_ALG_OPEN,关于认证算法的介绍详见参考文献5 |
3 | akm | 授权密钥管理方式,包括AKM_TYPE_NONE、AKM_TYPE_WPA、AKM_TYPE_WPAPSK、AKM_TYPE_WPA2、AKM_TYPE_WPA2PSK、AKM_TYPE_UNKNOWN,默认为AKM_TYPE_NONE,关于授权密钥管理方式详见参考文献6-7 |
4 | cipher | 密码类型,包括CIPHER_TYPE_NONE、CIPHER_TYPE_WEP、CIPHER_TYPE_TKIP、CIPHER_TYPE_CCMP、CIPHER_TYPE_UNKNOWN,默认为CIPHER_TYPE_NONE |
5 | key | 无线网络连接密码,如果密码类型不未CIPHER_TYPE_NONE,则应设置本属性值 |
  ;Interface类用于执行无线网络操作,主要包括以下函数:
序号 | 函数名 | 说明 |
---|---|---|
1 | name | 获取无线网卡名称 |
2 | scan | 调用无线网卡扫描可用的无线网络(AP) |
3 | scan_results | 获取scan函数的扫描结果,返回的是Profile对象列表 |
4 | add_network_profile | 添加特定无线网络(AP)以便后续连接 |
5 | remove_network_profile | 移除指定的无线网络(AP) |
6 | remove_all_network_profiles | 移除所有无线网络(AP) |
7 | network_profiles | 获取保存的所有无线网络(AP) |
8 | connect | 连接指定的无线网络(AP) |
9 | disconnect | 断掉当前无线网络连接 |
10 | status | 获取当前无线网络连接状态 |
  最后是照着参考文献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代码换行就是每行后面加个 \举个栗子:time = "2017"print "one"
- Log包Go语言提供的默认日志包:https://golang.org/pkg/log/基本用法log包定义了Logger类型,该类型提供了
- 如何制作关联的下拉菜单?看看代码:<form name=f1 METHOD="POST">
- 方法对比:使用df[(df[“a”] > 3) & (df[“b&
- 导读:这篇文章主要介绍如何利用opencv来对图像添加各类噪声,原图:1、高斯噪声高斯噪声就是给图片添加一个服从高斯分布的噪声,可以通过调节
- 基于微信可以做很多有意思的练手项目,看了这张速查表你就会发现,可以做的事情超过你的想象。有一次我想要统计微信群里哪些同学在北京,但发现直接问
- 本文实例介绍了如何使用ASP代码来读写注册表,呵呵厉害吧! 一个例子: <%Dim ReadComputerNam
- 问题描述:用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率
- 前言:要说小时候称霸所有翻盖手机的小游戏,除了贪吃蛇,那就是推箱子了。控制小人将所有箱子放到指定位置,就是这样简简单单的操作,陪伴我度过了无
- 即使在不太复杂的样式表中,也可能会有两个或者更多个规则找到同一元素。CSS通过一个叫做层叠(cascade)的过程处理这种冲突。
- 众所周知,透明的PNG图片在IE6中是不透明的。为了在IE6中显示透明的PNG图片,找了一下方法,在网页中嵌入JS语句,可是执行效果并不尽如
- 1、函数实现# -*- coding: utf-8 -*-def tail(filename, n=10): with open
- 1、$_SERVER$_SERVER超级全局变量包含由web服务器创建的信息,它提供了服务器和客户配置及当前请求环境的有关信息。根据服务器不
- Python是一门非常酷的语言,因为很少的Python代码可以在短时间内做很多事情,并且,Python很容易就能支持多任务和多重处理。py&
- 具体代码如下所示:#coding=utf8from urllib import requestimport reimport urllib,
- 多表操作 在一个数据库中,可能存在多个表,这些表都是相互关联的。我
- 引言本集开始,将会深入Document接口。打开或创建一个文档都会产生一个Document对象,它代表文档本身,所以绝大部分文档的操作都会依
- var InterestKeywordListString = $("#userInterestKeywordLabel"
- 文件:.wmv;大小:19,535KB;长度:00:26:39。 下载地址:SqlFunction_udf_Week.rar以下内容于201
- 上次介绍了如何通过钉钉进行群通知,有同学反馈自己更习惯使用企业微信或公司使用了企业微信,希望也能出个基于Python的企业微信的群通知教程,