美文网首页iOS Wi-Fi
关于获取iPhone的WiFi地址、UUID、IP相关方法

关于获取iPhone的WiFi地址、UUID、IP相关方法

作者: zero_zql | 来源:发表于2016-04-25 15:04 被阅读365次

关于获取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
    

相关文章

网友评论

    本文标题: 关于获取iPhone的WiFi地址、UUID、IP相关方法

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