【发布时间】:2011-01-19 21:24:28
【问题描述】:
我需要在 OSX 上获取当前连接的 Wi-Fi SSID 的名称。
我弄乱了 SystemConfiguration 框架,我觉得它就在那里(因为我能够获取网络位置的名称),但我并没有真正找到获取 Wi-Fi SSID 的方法。
不胜感激。 :)
谢谢。
【问题讨论】:
标签: objective-c macos wifi ssid system-configuration
我需要在 OSX 上获取当前连接的 Wi-Fi SSID 的名称。
我弄乱了 SystemConfiguration 框架,我觉得它就在那里(因为我能够获取网络位置的名称),但我并没有真正找到获取 Wi-Fi SSID 的方法。
不胜感激。 :)
谢谢。
【问题讨论】:
标签: objective-c macos wifi ssid system-configuration
对于 osX Yosemite 10.10 使用
#import <CoreWLAN/CoreWLAN.h>
-(void)prettyFunctionName
{
CWInterface* wifi = [[CWWiFiClient sharedWiFiClient] interface];
NSLog(@"BSD if name: %@", wifi.interfaceName);
NSLog(@"SSID: %@", wifi.ssid);
NSLog(@"txRate: %f", wifi.transmitRate);
}
【讨论】:
您可以使用 CoreWLAN 框架:CWInterface 有一个名为 ssid 的属性。下面的代码获取当前的无线接口并显示它的 BSD 名称和它的 SSID。它适用于 Mac OS 10.6+。
#import <Foundation/Foundation.h>
#import <CoreWLAN/CoreWLAN.h>
int main() {
NSAutoreleasePool *pool = [NSAutoreleasePool new];
CWInterface *wif = [CWInterface interface];
NSLog(@"BSD if name: %@", wif.name);
NSLog(@"SSID: %@", wif.ssid);
[pool drain];
return 0;
}
输出:
$ ./wif
BSD if name: en1
SSID: Aetherius
【讨论】:
[CWInterface interface] 已被弃用。有人对改用什么有想法吗?
-[CWWiFiClient interface],但是我找不到它的任何文档,并且该类似乎不存在于 CoreWLAN 框架中。所以无论如何我都会使用+[CWInterface interface]。