OSX 無線LANスキャン情報取得
スキャンにより、周囲のAPから取得している情報を取得するコードを書いてみました。ただCWNetworkクラスでは取得する情報が限られています。セキュリティは暗号化されているか、されていないかしかとれません。ただInfomartion Elementが取得できるので、そのデータをパースしていけばより、詳細な情報が取得できそうです。
参考:Stack Overflow
#import <Foundation/Foundation.h> #import <CoreWLAN/CoreWLAN.h> int main(int argc, const char * argv[]) { @autoreleasepool { CWInterface* interface = [CWInterface interfaceWithName:@"en0"]; NSError* error = nil; NSArray* scanResult = [[interface scanForNetworksWithSSID:nil error:&error] allObjects]; if (error) { NSLog(@"%@ (%ld)", [error localizedDescription], [error code]); } for (CWNetwork* network in scanResult) { NSLog(@"*******************************************************"); NSLog(@"BSSID: %@", network.bssid); NSLog(@"SSID: %@", network.ssid); NSLog(@"rssiValue: %ld", network.rssiValue); CWChannel *channel = network.wlanChannel; NSLog(@"channel number: %ld", channel.channelNumber); static NSString *channelBand[] = {@"none",@"2.4GHz",@"5GHz"}; NSLog(@"channel band: %@", channelBand[channel.channelBand]); static NSString *bandWidth[] = {@"none",@"20MHz",@"40MHz",@"80MHz",@"160MHz"}; NSLog(@"band width: %@", bandWidth[channel.channelWidth]); NSLog(@"band width: %@", network.informationElementData); } } return 0; }