如何在 OS X 上使用 Python 连接到 Wi-Fi 网络?

tec*_*raf 5 python macos pyobjc wifi

我想在 OS X (10.11) 上使用 Python 连接到 Wi-Fi 网络。基于CWInterface 参考,我发现有一种iface.associateToNetwork_password_error_()方法可用,但是在调用时它不会连接到网络,也不会导致任何异常。

同时iface.disassociate()正常工作并断开WiFi。

这是我试过的代码:

import objc

objc.loadBundle('CoreWLAN',
       bundle_path='/System/Library/Frameworks/CoreWLAN.framework',
       module_globals=globals())

iface = CWInterface.interface()

iface.associateToNetwork_password_error_(SSID, PASSWORD, None)
Run Code Online (Sandbox Code Playgroud)

如何从 OS X 上的 Python 连接到指定网络并确保已建立连接?

Art*_*are 5

我能够通过以下方式成功连接到我的家庭网络:

import objc

objc.loadBundle('CoreWLAN',
                bundle_path = '/System/Library/Frameworks/CoreWLAN.framework',
                module_globals = globals())

iface = CWInterface.interface()

networks, error = iface.scanForNetworksWithName_error_('<Name Of Network>', None)

network = networks.anyObject()

success, error = iface.associateToNetwork_password_error_(network, '<Password Of Network>', None)
Run Code Online (Sandbox Code Playgroud)

我怀疑你遗漏了两件关键的事情:

  1. 你没有传入 aCWNetwork作为你的第一个参数。
  2. 您没有检查返回值(IE,successerror在最后一次调用中)。也许他们可以帮助您追踪任何其他问题。