获取OSX连接的Wi-Fi网络名称

Edu*_*Alm 9 macos objective-c ssid system-configuration wifi

我需要在OSX上获取当前连接的Wi-Fi SSID的名称.

我已经搞砸了SystemConfiguration框架,我觉得它就在那里(因为我能够获得网络位置的名称),但我并没有真正找到获取Wi-Fi SSID的方法.

非常感谢任何帮助.:)

谢谢.

小智 12

对于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);
}
Run Code Online (Sandbox Code Playgroud)


小智 10

您可以使用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;
}
Run Code Online (Sandbox Code Playgroud)

输出:

$ ./wif
BSD if name: en1
SSID: Aetherius
Run Code Online (Sandbox Code Playgroud)