📜  使用Python的 Wi-Fi 二维码生成器

📅  最后修改于: 2022-05-13 01:55:07.186000             🧑  作者: Mango

使用Python的 Wi-Fi 二维码生成器

先决条件:使用Python获取已保存的 Wifi 密码

我们知道无线网络是当今最常见的网络适配器,因为它支持便携性和用户友好性。在本文中,我们将看到如何获取当前保存的 Wi-Fi 名称和密码,并生成二维码以使用Python连接其他设备。

在开始之前,我们需要安装wifi-qrcode-generator模块,为您的 Wi-Fi 生成二维码,让其他人快速连接您的 Wi-Fi:

安装:

这个模块没有内置于Python中。要安装此类型,请在终端中输入以下命令。

pip install wifi-qrcode-generator

用法:

Python3
# Import module
import wifi_qrcode_generator as qr
 
# Use wifi_qrcode() to create a QR image
qr.wifi_qrcode('wifi name ', False, 'WPA', 'password')


Python3
# import modules
import subprocess
import wifi_qrcode_generator
 
 
# try catch block begins
# try block
try:
   
    # traverse the profile
    Id = subprocess.check_output(
        ['netsh', 'wlan', 'show', 'interfaces']).decode('utf-8').split('\n')
     
    id_results = str([b.split(":")[1][1:-1]
                      for b in Id if "Profile" in b])[2:-3]
 
    # traverse the password
    password = subprocess.check_output(
        ['netsh', 'wlan', 'show', 'profiles',
         id_results, 'key=clear']).decode('utf-8').split('\n')
     
    pass_results = str([b.split(":")[1][1:-1]
                        for b in password if "Key Content" in b])[2:-2]
    print("User name :", id_results)
    print("Password :", pass_results)
     
except:
    print("something wrong")
     
# generate Qr code
wifi_qrcode_generator.wifi_qrcode(id_results, False, 'WPA', pass_results)


输出:

现在让我们在 cmd 中获取当前的 Wi-Fi 名称和密码:

如果您将此netsh wlan show interface代码写入 cmd 终端,那么您将获得各种详细信息:

如果您将此netsh wlan show profile {Profile Name} key=clear code 写入终端,则您将获得网络密钥。

方法:

  1. 导入模块子进程wifi-qrcode-generator模块。
  2. 使用subprocess.check_output()获取命令netsh wlan show interface的输出。
  3. 用utf-8解码输出,根据行拆分元数据。
  4. 现在获取拆分字符串以查找您当前的 Wi-Fi 名称( SSID 名称)。
  5. 现在对密码执行相同操作并找到 Wi-Fi 密码( Key Content )。
  6. 现在生成您的 Wi-Fi 二维码。

下面是实现。

蟒蛇3

# import modules
import subprocess
import wifi_qrcode_generator
 
 
# try catch block begins
# try block
try:
   
    # traverse the profile
    Id = subprocess.check_output(
        ['netsh', 'wlan', 'show', 'interfaces']).decode('utf-8').split('\n')
     
    id_results = str([b.split(":")[1][1:-1]
                      for b in Id if "Profile" in b])[2:-3]
 
    # traverse the password
    password = subprocess.check_output(
        ['netsh', 'wlan', 'show', 'profiles',
         id_results, 'key=clear']).decode('utf-8').split('\n')
     
    pass_results = str([b.split(":")[1][1:-1]
                        for b in password if "Key Content" in b])[2:-2]
    print("User name :", id_results)
    print("Password :", pass_results)
     
except:
    print("something wrong")
     
# generate Qr code
wifi_qrcode_generator.wifi_qrcode(id_results, False, 'WPA', pass_results)

输出: