1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
  
 | 
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {     kern_return_t kr;     CFMutableDictionaryRef matchDict;     io_iterator_t iterator;     io_registry_entry_t entry;          matchDict = IOServiceMatching("IOEthernetInterface");     kr = IOServiceGetMatchingServices(kIOMasterPortDefault, matchDict, &iterator);          NSDictionary *resultInfo = nil;          while ((entry = IOIteratorNext(iterator)) != 0)     {         CFMutableDictionaryRef properties=NULL;         kr = IORegistryEntryCreateCFProperties(entry,                                                &properties,                                                kCFAllocatorDefault,                                                kNilOptions);         if (properties)         {             resultInfo = (__bridge_transfer NSDictionary *)properties;             NSString *bsdName = [resultInfo objectForKey:@"BSD Name"];             NSData *macData = [resultInfo objectForKey:@"IOMACAddress"];             if (!macData)             {                 continue;             }                          NSMutableString *macAddress = [[NSMutableString alloc] init];             const UInt8 *bytes = [macData bytes];             for (int i=0; i<macData.length; i++)             {                 [macAddress appendFormat:@"%02x",*(bytes+i)];             }                           
 |