📜  如何使用Python连接 WiFi?

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

如何使用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,并像连接到已知网络一样连接到网络。