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;
}