python链接wifi须要使用pywifi包,能够用pip install pywifi安装python
1.导入包app
import pywifi,time #保存包中写义的常量
from pywifi import const
conbst 定义的常量:加密
# # Define interface status. # IFACE_DISCONNECTED = 0 # IFACE_SCANNING = 1 # IFACE_INACTIVE = 2 # IFACE_CONNECTING = 3 # IFACE_CONNECTED = 4 # # # Define auth algorithms. # AUTH_ALG_OPEN = 0 # AUTH_ALG_SHARED = 1 # # # Define auth key mgmt types. # AKM_TYPE_NONE = 0 # AKM_TYPE_WPA = 1 # AKM_TYPE_WPAPSK = 2 # AKM_TYPE_WPA2 = 3 # AKM_TYPE_WPA2PSK = 4 # AKM_TYPE_UNKNOWN = 5 # # # Define ciphers. # CIPHER_TYPE_NONE = 0 # CIPHER_TYPE_WEP = 1 # CIPHER_TYPE_TKIP = 2 # CIPHER_TYPE_CCMP = 3 # CIPHER_TYPE_UNKNOWN = 4 # # KEY_TYPE_NETWORKKEY = 0 # KEY_TYPE_PASSPHRASE = 1
def wifi_connect_status(): """ 判断本机是否有无线网卡,以及链接状态 :return: 已链接或存在无线网卡返回1,不然返回0 """
#建立一个元线对象
wifi = pywifi.PyWiFi() #取当前机器,第一个元线网卡
iface = wifi.interfaces()[0] #有可能有多个无线网卡,因此要指定
#判断是否链接成功
if iface.status() in [const.IFACE_CONNECTED,const.IFACE_INACTIVE]: print('wifi已链接') return 1
else: print('wifi未链接') return 0
扫苗wifispa
def scan_wifi(): """ 扫苗附件wifi :return: 扫苗结果对象 """
#扫苗附件wifi
wifi = pywifi.PyWiFi() iface = wifi.interfaces()[0] iface.scan() #扫苗附件wifi
time.sleep(1) basewifi = iface.scan_results() for i in basewifi: print('wifi扫苗结果:{}'.format(i.ssid)) # ssid 为wifi名称
print('wifi设备MAC地址:{}'.format(i.bssid)) return basewifi
连接到指定wificode
def connect_wifi(): wifi = pywifi.PyWiFi() # 建立一个wifi对象
ifaces = wifi.interfaces()[0] # 取第一个无限网卡
print(ifaces.name()) # 输出无线网卡名称
ifaces.disconnect() # 断开网卡链接
time.sleep(3) # 缓冲3秒
profile = pywifi.Profile() # 配置文件
profile.ssid = "acewill" # wifi名称
profile.auth = const.AUTH_ALG_OPEN # 须要密码
profile.akm.append(const.AKM_TYPE_WPA2PSK) # 加密类型
profile.cipher = const.CIPHER_TYPE_CCMP # 加密单元
profile.key = '4000103000' #wifi密码 ifaces.remove_all_network_profiles() # 删除其余配置文件
tmp_profile = ifaces.add_network_profile(profile) # 加载配置文件
ifaces.connect(tmp_profile) # 链接
time.sleep(10) # 尝试10秒可否成功链接
isok = True if ifaces.status() == const.IFACE_CONNECTED: print("成功链接") else: print("失败") #ifaces.disconnect() # 断开链接
time.sleep(1) return isok
以上是操做wifi经常使用的方法, 能够本身扩展.好比弱口令破解. 能够下载个6000经常使用wifi弱口令. orm
思想简单,挨个试链接,状态const.IFACE_CONNECTED 即密码正确. 对象