Получение OSX подключенного имени сети Wi-Fi - PullRequest
8 голосов
/ 20 января 2011

Мне нужно получить имя подключенного в данный момент SSID Wi-Fi на OSX.

Я перепутался с платформой SystemConfiguration, я чувствую, что она есть (поскольку я могу узнать название сети), но я не могу найти способ получения SSID Wi-Fi.

Буду признателен за любую помощь. :)

Спасибо.

Ответы [ 2 ]

11 голосов
/ 15 января 2015

Для 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);
}
10 голосов
/ 20 января 2011

Вы можете использовать инфраструктуру 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
...