关于获取iPhone的WiFi地址、UUID、IP相关方法
2016-04-25 本文已影响365人
zero_zql
关于获取iPhone的WiFi地址、UUID、IP相关方法
经常我们会遇到获取iPhone的WiFi地址、UUID、IP的相关信息,下面就总结下给大家分享下
- .h文件
#import <Foundation/Foundation.h>
@interface WifiName : NSObject
@property(nonatomic,strong,readonly) NSString * wifiName;
@property(nonatomic,strong,readonly)NSString * UUID;
@property(nonatomic,strong,readonly)NSString * IP;
@end
-
.m 文件
#import "WifiName.h" #import <SystemConfiguration/CaptiveNetwork.h> // wifi库 #import <ifaddrs.h> // IP库 #import <arpa/inet.h> @implementation WifiName -(NSString * )wifiName{ NSString *wifi = @"Not Found"; CFArrayRef myArray = CNCopySupportedInterfaces(); if (myArray != nil) { CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0)); if (myDict != nil) { NSDictionary *dict = (NSDictionary*)CFBridgingRelease(myDict); wifi = [dict valueForKey:@"SSID"]; } } return wifi; } -(NSString*)UUID{ CFUUIDRef puuid = CFUUIDCreate( nil ); CFStringRef uuidString = CFUUIDCreateString( nil, puuid ); NSString * result = (NSString *)CFBridgingRelease(CFStringCreateCopy( NULL, uuidString)); CFRelease(puuid); CFRelease(uuidString); return result; } -(NSString*)IP{ NSString *address = @"Not Found"; struct ifaddrs *interfaces = NULL; struct ifaddrs *temp_addr = NULL; int success = 0; success = getifaddrs(&interfaces); if (success == 0) { temp_addr = interfaces; while(temp_addr != NULL) { if(temp_addr->ifa_addr->sa_family == AF_INET) { if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) { address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; } } temp_addr = temp_addr->ifa_next; } } freeifaddrs(interfaces); return address; } @end