首先列出几个简单的信息
#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; }