ios获取手机状态 idfa   idfv   网络类型   分辨率   获取运营商 ip

发布时间:2020-06-15 23:20:36 作者:qq646827911
来源:网络 阅读:1288

//idfa

[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];


//idfv

[[[UIDevice currentDevice] identifierForVendor] UUIDString];




//网络类型

- (NSString *) getNet

{

    UIApplication *application = [UIApplication sharedApplication];

    NSArray *subviews = [[[application valueForKey:@"statusBar"] valueForKey:@"foregroundView"]subviews];

    NSNumber *dataNetWorkItemView = nil;

    for (id subView in subviews) {

           if ([subView isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {

            dataNetWorkItemView = subView;

            break;

        }

    }

        switch ([[dataNetWorkItemView valueForKey:@"dataNetworkType"] integerValue]) {

        case 0:

            NSLog(@"No wifi or cellular");

                return @"null";

            break;

        case 1:

            NSLog(@"2G");

                return @"2G";

            break;

        case 2:

            NSLog(@"3G");

            return @"3G";

            break;

        default:

            NSLog(@"Wifi");

            return @"Wifi";

            break;

    }

    return @"null";

}


//分辨率

- (NSString *) getFbl

{

    //屏幕尺寸

    

    CGRect rect = [[UIScreen mainScreen] bounds];

    

    CGSize size = rect.size;

    

    CGFloat width = size.width;

    

    CGFloat height = size.height;

    

    NSLog(@"print %f,%f", width, height);

    

    

    //分辨率

    

    CGFloat scale_screen = [UIScreen mainScreen].scale;


    return [NSString stringWithFormat:@"%d*%d", (int)(width * scale_screen), (int)(height * scale_screen)];


}


//获取运营商

- (NSString *)getOp

{

    

    NSString * ret = @"";

    

    

    

    CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];

    

    

    

    CTCarrier *carrier = [info subscriberCellularProvider];

    

    

    

    if (carrier == nil)

        

    {

        

        [info release];

        return @"null1";

        

    }

    

    

    NSString *code = [carrier mobileNetworkCode];

    

    if (code == nil)

        

    {

        

        [info release];

        return @"null2";

        

    }

    

    

    if ([code isEqualToString:@"00"] || [code isEqualToString:@"02"] || [code isEqualToString:@"07"])

    {

        ret = @"China Mobile";

    }

    

    if ([code isEqualToString:@"01"] || [code isEqualToString:@"06"])

    {

        ret = @"China Unicom";

    }

    

    

    if ([code isEqualToString:@"03"] || [code isEqualToString:@"05"])

    {

        ret = @"China Telecom";

    }

    

    

    if ([code isEqualToString:@"20"])

    {

        ret = @"China Tietong";

    }

    

    

    

    [info release];

    

    

    return ret;

    

}



 //获取ip
- (NSString *)getIp
{
    //获取ip -(NSDictionary *)deviceWANIPAdress{
    NSError *error;
    NSURL *ipURL = [NSURL URLWithString:@"ios获取手机状态  idfa   idfv   网络类型   分辨率   获取运营商  iphttp://pv.sohu.com/cityjson?ie=utf-8 

"];
    NSMutableString *ip = [NSMutableString stringWithContentsOfURL:ipURL encoding:NSUTF8StringEncoding error:&error];
    //判断返回字符串是否为所需数据
    if ([ip hasPrefix:@"var returnCitySN = "]) {
        //对字符串进行处理,然后进行json解析
        //删除字符串多余字符串
        NSRange range = NSMakeRange(0, 19);
        [ip deleteCharactersInRange:range];
        NSString * nowIp =[ip substringToIndex:ip.length-1];
        //将字符串转换成二进制进行Json解析
        NSData * data = [nowIp dataUsingEncoding:NSUTF8StringEncoding];
        NSDictionary * dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
        return [dict valueForKey:(@"cip")];
    }else{
        return @"ip";
    }


推荐阅读:
  1. 怎么获取docker容器的ip地址
  2. 怎么用python获取Ip归属信息

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ios bs %d

上一篇:EBS附件下载 fnd_gfm fnd_lobs

下一篇:哈哈 我是新来的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》