美文网首页
iOS IP 地址及mac 地址获取

iOS IP 地址及mac 地址获取

作者: zero_zql | 来源:发表于2016-09-02 16:06 被阅读417次

    IP 地址获取方式:

    + (NSString *)getIPAddress
    {
    
    NSString *address = @"error";
    struct ifaddrs *interfaces = NULL;
    struct ifaddrs *temp_addr = NULL;
    int success = 0;
    
    // retrieve the current interfaces - returns 0 on success
    success = 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 memory
    freeifaddrs(interfaces);
    
      if ([address isEqualToString:@"error"])
      {
         address = @"169.254.230.225";
      }
      return address;
    }
    

    mac地址获取方式:

     + (NSString *)GetMacUUID
    {
      NSString *str = [SSKeychain passwordForService:UUIDService   account:UUIDAccount];
    
      if (str == nil || str.length == 0)
      {
          CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault);
          NSString *uuid = (__bridge NSString *)CFUUIDCreateString (kCFAllocatorDefault,uuidRef);
        BOOL rs = [SSKeychain setPassword:uuid forService:UUIDService account:UUIDAccount];
        assert(rs != NO);
        return uuid;
      }  else  {
          return str;
      }
    }

    相关文章

      网友评论

          本文标题:iOS IP 地址及mac 地址获取

          本文链接:https://www.haomeiwen.com/subject/nytkettx.html