ios 有关设备信息

  首先列出几个简单的信息

#pragma makr- app版本
-(NSString *)getVersionCode{

   NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
   return [infoDictionary objectForKey:@"CFBundleShortVersionString"];
}
#pragma mark-设备ID
-(NSString *)getDeviceId{

    return [[UIDevice currentDevice].identifierForVendor UUIDString];
}
#pragma mark- app操作系统
-(NSString *)getAppOs{
 
    return [[UIDevice currentDevice]systemVersion];
}
#pragma mark- 终端操作系统版本
-(NSString *)getTerminalOs{
    CGFloat sysVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
    return [NSString stringWithFormat:@"%f",sysVersion];
}
#pragma mark- 终端型号
-(NSString *)getDevModel{
 
    return [[UIDevice currentDevice]model];
}

  获取网络类型的方法如下

-(NSString *)getNetWorkStates{
    UIApplication *app = [UIApplication sharedApplication];
    NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
    NSString *state = [[NSString alloc]init];
    
    int netType =0;
    //获取到网络返回码
    for (id childin in children) {
        if ([childin isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
            //获取到状态栏
            netType = [[childin valueForKeyPath:@"dataNetworkType"]intValue];
            
            switch (netType) {
                case 0:
                    state = @"无网络";
                    //无网模式
                    break;
                case 1:
                    state = @"2G";
                    break;
                case 2:
                    state = @"3G";
                    break;
                case  3:
                    state = @"4G";
                    break;
                case 5:
                {
                    state = @"WIFI";
                }
                    break;
                default:
                    break;
            }
        }
    }
    return state;
}

获取IP地址

#pragma mark- 获取ip地址
-(NSString *)deviceIPAdress {
    NSString *address = @"获取失败";
    struct ifaddrs *interfaces = NULL;
    struct ifaddrs *temp_addr = NULL;
    int success = 0;
    success = getifaddrs(&interfaces);
    if (success == 0) {
        // 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;  
}  
原文地址:https://www.cnblogs.com/machealking/p/4635511.html