资讯详情

python获取连接过的WiFi密码-多线程进阶版

修改解决不了中文空格的问题 增加多线程处理以提高速度

# -*- coding: utf-8 -*- # @time: 2022/7/21 14:28 # @Author: JCS # @Email:576767604@qq.com # @File :get_wifi.py # @Softwre: PyCharm import os import subprocess  # 获取wifi列表 from threading import Thread   class Get_wifi_pw(Thread):     def __init__(self, queue):         Thread.__init__(self)         self.queue = queue      def run(self):         while True:             wifi_data = self.queue.get()             try:                 get_wifi_password(wifi_data)             except:                 print(未知异常)             finally:                 self.queue.task_done()   global wifilist wifilist = []   def get_wifi_info():     output = os.popen(f'netsh wlan show profiles').read().split('\n')     wifis = [line.split(' : ')[1] for line in output if "所有用户配置文件" in line]     return wifis   def get_wifi_password(wifi):     cmd =fr'netsh wlan show profile name="{ 
        wifi}" key=clear'
    obj = subprocess.Popen((cmd), shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    results = obj.stdout.read().decode("gbk", "ignore").split("\n")
    len_list = len(results)
    obj.stdout.close()
    for line in results:
        try:
            if "关键内容" in line:
                txt = line.split(':')[1][1:-1]
                wifilist.append(f'wifi账号:{ 
         wifi},密码:{ 
         txt}')
            elif "开放式" in line:
                wifilist.append(f'wifi账号:{ 
         wifi},密码:"开放式!"')
        except:
            wifilist.append(f'wifi账号:{ 
         wifi},密码:"获取失败未知错误!"')

def run():
    wifi_info_list = get_wifi_info()
    wifi_info_list_len = len(wifi_info_list)
    if wifi_info_list_len == len(wifilist):
        return wifilist
    else:
        import queue
        queue = queue.Queue()
        for x in range(20):
            worker = Get_wifi_pw(queue)
            worker.daemon = True
            worker.start()
        for i in get_wifi_info():
            queue.put(i)

        queue.join()
        return wifilist


if __name__ == '__main__':
    print(run())

标签: jcs油压继电器参数

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台