我想写一个python脚本,可以使我的计算机关联到一个无线接入点,给定的名称作为一个string。 例如,我可能会指定我想连接到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包装 ,你可以直接从IronPython使用这个更高级别的API。 不幸的是,它没有很好的记录,但是查看C#示例和挖掘源代码应该比调用底层API更容易。 这是一个非常以Windows为中心的解决方案,所以PowerShell可以更好地为您服务 。