iOS 获取手机IP地址 Mac地址

pragma MARK - 获取Ip 地址
-(NSString *)getIponeIP{

NSString *address = @"error";struct ifaddrs *interfaces = NULL;struct ifaddrs *temp_addr = NULL;int success = 0;// retrieve the current interfaces - returns 0 on successsuccess = getifaddrs(&interfaces);if (success == 0) {    // Loop through linked list of interfaces    temp_addr = interfaces;    while(temp_addr != NULL) {        if(temp_addr->ifa_addr->sa_family == AF_INET) {            // Check if interface is en0 which is the wifi connection on the iPhone            if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) {                // Get NSString from C String                address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];            }        }        temp_addr = temp_addr->ifa_next;    }}// Free memoryfreeifaddrs(interfaces);NSLog(@"-------ip %@", address);return address;

}

pragma MARK - 获取设施Mac地址

-(NSString *)getIponeMAC{

int                 mib[6];size_t              len;char                *buf;unsigned char       *ptr;struct if_msghdr    *ifm;struct sockaddr_dl  *sdl;mib[0] = CTL_NET;mib[1] = AF_ROUTE;mib[2] = 0;mib[3] = AF_LINK;mib[4] = NET_RT_IFLIST;