将我的Windows电脑与Python的一个WiFi AP(Associating my Windo

2019-07-17 16:01发布

我试着写一个Python脚本,可以让我的电脑关联到无线接入点,给出的名字作为一个字符串。 例如,我可以指定我想连接到linksys ,和我的脚本会导致计算机做到这一点。

我看了看这个问题,但无法了解什么不去看提供的链接。

有人能指出我在正确的方向?

Answer 1:

我决定把保罗的建议,并尝试使用PowerShell /命令行。 我发现了一个文章关于通过命令行连接到网络。

在命令行中,你可以这样做:

netsh wlan connect <profile-name> [name=<ssid-name>]

...其中name=<ssid-name>部分是可选的并且必然是仅当配置文件包含多个SSID。

然而,它看起来像配置文件必须在机器上,以便在命令行的东西的工作已经存在。 我没有找到一个论坛的帖子上编程创建一个配置文件,但我不喜欢通过它拉票。

如果配置文件名已经存在,那么从Python中,你可以做类似下面的内容:

import subprocess

def connect_to_network(name):
    process = subprocess.Popen(
        'netsh wlan connect {0}'.format(name),
        shell=True,
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE)
    stdout, stderr = process.communicate()

    # Return `True` if we were able to successfully connect
    return 'Connection request was completed successfully' in stdout        

这是一个完美的解决方案,而我不能完全肯定是否会在任何情况下工作,但它确实工作,为我的具体情况。 我以为我会发布什么,我想出了以防其他人想尝试修改它,使之更好。



Answer 2:

答案您链接有关从Windows API调用低级别的C函数会谈。 低层次的东西摆弄使我的大脑受到伤害。

还有周围的本地C调用一个.NET的包装 ,你可以直接从使用更高级别的API IronPython的 。 遗憾的是,没有很好的记载,但在看C#示例和挖掘过的来源应该比调用底层API更容易。 这是一个非常Windows为中心的解决方案,让您可以更好地通过PowerShell的服务 。



Answer 3:

我已经超过命令行界面控制的Wi-Fi写一个Python CLI工具。 有一个在这个项目库,它应该符合你的要求。

https://github.com/changyuheng/pywinwifi

还有一个独立的库,但我从来没有尝试过。

https://github.com/reedcourty/pynetsh



文章来源: Associating my Windows computer to a wifi AP with Python