如何使用Python连接 WiFi?
今天几乎不可能看到没有有效互联网连接的计算机。互联网在 21 世纪发挥了至关重要的作用。有多种方法可以将他们的机器连接到 Internet。第一个是传统电缆,即以太网,另一个是我们都知道的现代无线保真系统或 Wi-Fi。 Wi-Fi 让我们所有人的生活变得更轻松、更快捷。只需轻触拇指或点击鼠标,我们几乎可以瞬间连接到无限的信息和资源海洋。在本文中,我们将使用高级现代编程语言(如Python)完成相同的任务
连接到已知的 WiFi 网络
在这里,我们将连接到之前连接的 WiFi 网络。
方法:
该计划的方法很简单:
- 导入必要的库。
- 借助cmd 命令和名为os的Python库显示所有可用的 SSID。
- 选择您要连接的已知 Wi-Fi。
- 等待它连接成功。
现在,让我们开始编码。我们将使用几个Windows 命令提示符命令来访问可用的 Wi-Fi 网络列表并连接到以前连接的网络。但是,我们如何在Python脚本中编写和执行 Window Command Prompt 命令呢?嗯…
os库通过path()、getcwd()、system()等多种方法帮助我们通过Python直接与操作系统通信。我们甚至可以使用os函数运行CMD命令。
执行:
Python3
# 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!")
Python3
# import module
import os
# function to establish a new connection
def createNewConnection(name, SSID, password):
config = """
"""+name+"""
"""+SSID+"""
ESS
auto
WPA2PSK
AES
false
passPhrase
false
"""+password+"""
"""
command = "netsh wlan add profile filename=\""+name+".xml\""+" interface=Wi-Fi"
with open(name+".xml", 'w') as file:
file.write(config)
os.system(command)
# function to connect to a network
def connect(name, SSID):
command = "netsh wlan connect name=\""+name+"\" ssid=\""+SSID+"\" interface=Wi-Fi"
os.system(command)
# function to display avavilabe Wifi networks
def displayAvailableNetworks():
command = "netsh wlan show networks interface=Wi-Fi"
os.system(command)
# display available netwroks
displayAvailableNetworks()
# input wifi name and password
name = input("Name of Wi-Fi: ")
password = input("Password: ")
# establish new connection
createNewConnection(name, name, password)
# connect to the wifi network
connect(name, name)
print("If you aren't connected to this network, try connecting with the correct password!")
输出:
解释:
在这里,首先,我们使用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 网络
执行:
蟒蛇3
# import module
import os
# function to establish a new connection
def createNewConnection(name, SSID, password):
config = """
"""+name+"""
"""+SSID+"""
ESS
auto
WPA2PSK
AES
false
passPhrase
false
"""+password+"""
"""
command = "netsh wlan add profile filename=\""+name+".xml\""+" interface=Wi-Fi"
with open(name+".xml", 'w') as file:
file.write(config)
os.system(command)
# function to connect to a network
def connect(name, SSID):
command = "netsh wlan connect name=\""+name+"\" ssid=\""+SSID+"\" interface=Wi-Fi"
os.system(command)
# function to display avavilabe Wifi networks
def displayAvailableNetworks():
command = "netsh wlan show networks interface=Wi-Fi"
os.system(command)
# display available netwroks
displayAvailableNetworks()
# input wifi name and password
name = input("Name of Wi-Fi: ")
password = input("Password: ")
# establish new connection
createNewConnection(name, name, password)
# connect to the wifi network
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,并像连接到已知网络一样连接到网络。