如何使用 Python 连接 WiFi
互联网在 21 世纪发挥了至关重要的作用,有多种方法可以将他们的机器连接到 Internet。第一个是传统电缆,即以太网,另一个是我们都知道的现代无线保真系统或 Wi-Fi。Wi-Fi 让我们所有人的生活变得更轻松、更快捷。只需轻触拇指或点击鼠标,我们可以瞬间连接到无限的信息和资源海洋。在本文中,我们将介绍如何使用 Python 连接 WiFi。
推荐:如何使用Python程序Pytube库下载YouTube视频
连接到已知的 WiFi 网络
在这里,我们将连接到之前连接的 WiFi 网络,该计划的方法很简单:
- 导入必要的库。
- 借助cmd 命令和名为os的 python 库显示所有可用的 SSID 。
- 选择您要连接的已知 Wi-Fi。
- 等待连接成功。
我们将使用几个Windows 命令提示符命令来访问可用的 Wi-Fi 网络列表并连接到以前连接的网络。但是,我们如何在 Python 脚本中编写和执行 Window Command Prompt 命令呢?
# import module
import os
# scan available Wifi networks
os.system('cmd /c "netsh wlan show networks"')
# input Wifi name
name_of_router = input('Enter Name/SSID of the Wifi Network you wish to connect to: ')
# connect to the given wifi network
os.system(f'''cmd /c "netsh wlan connect name={name_of_router}"''')
print("If you're not yet connected, try connecting to a previously connected SSID again!")
输出:
首先我们使用import关键字获取 os 库。然后,我们使用os库中的 system() 方法帮助我们运行 cmd 命令
'cmd /c "netsh wlan show networks"'
上述命令扫描所有可用的 SSID并将它们显示为输出以及它们的基础结构、身份验证和加密类型。我们通过 SSID 的字符串输入继续进行,用户希望连接到并将它们保存在名为name_of_router的变量中。
然后这个字符串变量被替换为另一个 cmd 命令,我们应该在其中输入 SSID 的名称。
f'''cmd /c "netsh wlan connect name={name_of_router}"'''
我们现在将成功连接到特定的 SSID。
连接到新的 Wi-Fi 网络
现在连接到新的 Wi-Fi 涉及更多步骤。要连接到新网络,必须使用 .XML 文件将此新的 Wi-Fi 网络配置文件添加到我们的系统中。这使得 Wi-Fi 网络成为一个已知的 SSID,现在可以使用上述步骤成功连接到它。
- 第一步:导入os库
- 步骤 2:设置新 Wi-Fi 网络的XML 配置
- 步骤 3:选择Wi-Fi 网络
- 第 4 步:将此配置文件添加到您的系统
- 步骤 5:连接到 Wi-Fi 网络
import os
def createNewConnection(name, SSID, password):
config = """<?xml version=\"1.0\"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>"""+name+"""</name>
<SSIDConfig>
<SSID>
<name>"""+SSID+"""</name>
</SSID>
</SSIDConfig>
<connectionType>ESS</connectionType>
<connectionMode>auto</connectionMode>
<MSM>
<security>
<authEncryption>
<authentication>WPA2PSK</authentication>
<encryption>AES</encryption>
<useOneX>false</useOneX>
</authEncryption>
<sharedKey>
<keyType>passPhrase</keyType>
<protected>false</protected>
<keyMaterial>"""+password+"""</keyMaterial>
</sharedKey>
</security>
</MSM>
</WLANProfile>"""
command = "netsh wlan add profile filename=\""+name+".xml\""+" interface=Wi-Fi"
with open(name+".xml", 'w') as file:
file.write(config)
os.system(command)
def connect(name, SSID):
command = "netsh wlan connect name=\""+name+"\" ssid=\""+SSID+"\" interface=Wi-Fi"
os.system(command)
def displayAvailableNetworks():
command = "netsh wlan show networks interface=Wi-Fi"
os.system(command)
displayAvailableNetworks()
name = input("Name of Wi-Fi: ")
password = input("Password: ")
createNewConnection(name, name, password)
connect(name, name)
print("If you aren't connected to this network, try connecting with the correct password!")
输出:
首先,我们定义了createNewConnection函数,它接受参数 name、SSID 和密码,这些都是我们用来完成配置变量的字符串。config 变量是一个字符串,可帮助我们为新的 Wi-Fi 网络定义XML配置。
然后,我们从用户那里获取SSID 名称和密码的输入。然后将它们输入到 XML 代码中,然后使用以下代码行将其添加为配置文件:
command = "netsh wlan add profile filename=\""+name+".xml\""+" interface=Wi-Fi"
with open(name+".xml", 'w') as file:
file.write(config)
os.system(command)
现在可以使用本文前面使用的相同命令连接到 Wi-Fi,并像连接到已知网络一样连接到网络。