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

1

2

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密码)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

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())

到此这篇关于Python中pywifi模块的基本用法的文章就介绍到这了,希望可以帮到你。

来源:https://www.weidianyuedu.com

Python中pywifi模块的基本用法相关推荐

  1. Python中logging模块的基本用法

    本文首发于:行者AI 在开发项目时,我们不可能将所有的信息都打印在控制台中.我们可以使用Python标准库提供的logging API来处理.相比print,logging模块提供了许多强大而灵活的功 ...

  2. 学习Python中turtle模块的基本用法(5:绘制简笔画羊)

      人已阳,准备画个喜羊羊纪念一下,但是喜羊羊头上的卷太多了,不太好画,于是找了参考文献1的普通的简笔画羊,使用Python中的turtle模块绘制(采用参考文献3中绘制云朵的代码绘制羊身体).    ...

  3. 学习Python中turtle模块的基本用法(3:学习绘图示例源码)

      基于前面学习的turtle模块基本函数,在GitHub及其它网站中找到部分turtle绘制图形的示例,本文选取部分案例,学习案例源码,分析绘图思路,以巩固turtle基本函数的用法. 绘制爱心   ...

  4. 学习Python中turtle模块的基本用法(6:其它函数)

      除了之前文章中介绍的turtle模块的绘图函数,本文从turtle帮助文档中梳理了其它绘图或状态函数,编写复杂的绘图函数时也用得到,函数清单如下表所示: 序号 函数名称 说明 1 turtle.h ...

  5. Python中pyqtgraph模块结构及用法(1)

    pyqtgraph官方文档 官方网站 pyqtgraph是一个纯python的图形和GUI库,基于PyQt4\PySide和Numpy 一. pyqtgraph绘图方式 方法 官方文档 描述 pyqt ...

  6. python中email模块的一些用法

    1.parseaddr函数   email.utils.parseaddr(address)是模块中专门用来解析邮件地址的函数,返回一个tuple from email.utils import pa ...

  7. 学习Python中turtle模块的基本用法(4:绘制科赫曲线和谢尔宾斯基三角形)

      科赫曲线和谢尔宾斯基三角形是常见的分形图形(详细介绍见参考文献1),本文使用turtle库绘制这两类图形. 科赫曲线   科赫曲线的详细介绍见参考文献2,其中的绘图思路是"画正三角形,并 ...

  8. python threading join_Python中threading模块join函数用法实例分析

    本文实例讲述了Python中threading模块join函数用法.分享给大家供大家参考.具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后joi ...

  9. python中sys用法_Python中sys模块功能与用法实例详解

    Python中sys模块功能与用法.,具体如下: sys-系统特定的参数和功能 该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数.它始终可用. sys.argv 传递给Pyth ...

最新文章

  1. 运维企业专题(9)RHCS集群工具介绍
  2. 字节跳动教育裁员:赔付方式N+2
  3. centos改动sshport
  4. P3868 [TJOI2009]猜数字(CRT板子)
  5. Intel汇编程序设计-整数算术指令(上)
  6. oracle元数据存储在表空间,[Oracle] dbms_metadata.get_ddl 的使用方法总结
  7. MiniO纠删码快速入门
  8. BizTalk动手实验(十七)ODBC适配器使用
  9. 使用darknet-dnn-GPU方式识别物体(一)
  10. Tensorflow CIFAR10 (二分类)
  11. 字符串中索引位置是什么意思_女孩子左手中指戴戒指什么意思 不同位置各有不同...
  12. 设计一个算法,借助栈实现单链表链接顺序的逆转
  13. 六、入门python第六课
  14. Pandas入门超详细教程,看了超简单
  15. java计算机毕业设计体育用品购物系统源码+数据库+系统+lw文档+mybatis+运行部署
  16. 为什么有了路由器还要光猫
  17. 脂肪烃树脂行业调研报告 - 市场现状分析与发展前景预测
  18. jquery获取checkbox选中的值
  19. 汉语言处理工具pyhanlp的简繁转换
  20. Hystrix-断路器核心原理

热门文章

  1. [8月15日更新]南科大计算机系 “创新实践” 选题说明
  2. 计算机信息技术的具体应用案例,信息技术应用案例学习心得体会.doc
  3. centos修改磁盘uuid_Centos7 查看硬盘的UUID | 吴老二
  4. c/c++基于liunx平台tcp协议通信分数据段发送小demo
  5. HTB打靶(Active Directory 101 Sizzle)
  6. SQL入侵基础知识(一)
  7. AI+招聘,成就了谁?
  8. jvisualvm 插件安装
  9. I2C总线协议的verilog实现
  10. ubuntu 显示不出来 显示器_【LINUX】(Ubuntu)无显示器接入,使用虚拟显示器且远程控制...