在Mac OS X上,很容易使用AirPort GUI列出所有WLAN网络(SSID)并选择一个。但是,如何列出一个网络中的所有接入点(基站),并根据其MAC地址手动选择其中之一?
我问的原因是一种非常常见的情况,其中网络中的一个接入点发生故障,例如停止提供IP地址或路由数据包。
在Linux上,我可以使用命令行工具(如iwlist)列出访问点,而iwconfig则选择其中之一。如何在Mac OS X上执行类似的操作?我正在使用新的MacBook Pro和Mac OS X 10.6.4。
在Mac OS X上,很容易使用AirPort GUI列出所有WLAN网络(SSID)并选择一个。但是,如何列出一个网络中的所有接入点(基站),并根据其MAC地址手动选择其中之一?
我问的原因是一种非常常见的情况,其中网络中的一个接入点发生故障,例如停止提供IP地址或路由数据包。
在Linux上,我可以使用命令行工具(如iwlist)列出访问点,而iwconfig则选择其中之一。如何在Mac OS X上执行类似的操作?我正在使用新的MacBook Pro和Mac OS X 10.6.4。
Answers:
Mac OS X没有提供通过BSSID或其他方式将AP列入白名单或黑名单的方法。
即使有人找到/反向工程一些私有的API,该私有的API可以允许一个不可靠的工具在加入时指定BSSID,但这仍然无济于事。由于操作系统中没有黑名单或白名单机制,因此如果良好的AP的信号强度不足,并且失败的AP的信号强度足够好,您的客户端可能会立即漫游到发生故障的AP。
如@Chealion所述,airport -s
单独列出所有可见的AP,而不是按SSID折叠它们。
我通常这样做是为了将符号链接放置到airport
我目录中的命令中$PATH
:
ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport /usr/local/bin/airport
......让那之后我可以只发出airport -s
。
如果您发现第三方802.11卡(也许是USB加密狗)使用其自己的Mac OS X驱动程序,而该驱动程序没有利用Apple的AirPort客户端基础架构(IO80211 IOKit系列,Apple80211专用框架和“ AirPort” GUI片段),那么该产品可能包含BSSID白名单或黑名单功能,但Mac OS X的内置802.11基础结构中不提供对此功能的支持。
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s
将为您提供扫描结果。sudo networksetup -setairportnetwork en1 "SSID" "Password"
加入但不允许使用基于MAC地址选择接入点的方法。