我试着写一个Python脚本,可以让我的电脑关联到无线接入点,给出的名字作为一个字符串。 例如,我可以指定我想连接到linksys
,和我的脚本会导致计算机做到这一点。
我看了看这个问题,但无法了解什么不去看提供的链接。
有人能指出我在正确的方向?
我试着写一个Python脚本,可以让我的电脑关联到无线接入点,给出的名字作为一个字符串。 例如,我可以指定我想连接到linksys
,和我的脚本会导致计算机做到这一点。
我看了看这个问题,但无法了解什么不去看提供的链接。
有人能指出我在正确的方向?
我决定把保罗的建议,并尝试使用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
这是一个完美的解决方案,而我不能完全肯定是否会在任何情况下工作,但它确实工作,为我的具体情况。 我以为我会发布什么,我想出了以防其他人想尝试修改它,使之更好。
答案您链接有关从Windows API调用低级别的C函数会谈。 低层次的东西摆弄使我的大脑受到伤害。
还有周围的本地C调用一个.NET的包装 ,你可以直接从使用更高级别的API IronPython的 。 遗憾的是,没有很好的记载,但在看C#示例和挖掘过的来源应该比调用底层API更容易。 这是一个非常Windows为中心的解决方案,让您可以更好地通过PowerShell的服务 。
我已经超过命令行界面控制的Wi-Fi写一个Python CLI工具。 有一个在这个项目库,它应该符合你的要求。
https://github.com/changyuheng/pywinwifi
还有一个独立的库,但我从来没有尝试过。
https://github.com/reedcourty/pynetsh