美文网首页
iOS IDFA等相关用户隐私信息获取方法介绍

iOS IDFA等相关用户隐私信息获取方法介绍

作者: MTSu1e丶 | 来源:发表于2018-11-08 10:53 被阅读60次

UDID

UDID (Unique Device Identifier) :设备唯一标识符

UDID是一个40位十六进制序列,1326ee2662389aa5424e72875bf99211

获取方法:

[UIDevice currentDevice] uniqueIdentifier]

iOS5之后失效,现在可以使用iTunes和Xcode来获取这个值

UUID

UUID (Universally Unique Identifier):通用唯一标识符,当前这一刻全世界唯一,每次生成都是一个不一样的值

UUID是一个32位的十六进制序列(8-4-4-4-12), 37B326DB-0D51-4EC9-A93D-8A3AB37C411E

获取方法:

NSString *uuid = [NSUUID UUID].UUIDString;  

iOS6之后可以使用

IDFA

IDFA (Identifier For Advertising):广告标识符,设备唯一,可以用来不同App之间共享数据

IDFA是一个32位的十六进制序列(8-4-4-4-12), 372BED65-EC7E-4F4F-B70B-5C5430078AEB

获取方法:

ASIdentifierManager *asIM = [[ASIdentifierManager alloc] init];

NSString *idfa = [asIM.advertisingIdentifier UUIDString];

iOS6之后可以使用,如果用户将限制广告跟踪的开关打开,返回00000000-0000-0000-000000000000,再次关闭会重新生成一个,还原也会重新生成

审核注意事项:https://blog.csdn.net/qq_29284809/article/details/52053833

IDFV

IDFV (Identifier For Vendor ):开发商标识符,和Bundle Identifier绑定,同一前缀的id下的应用获取的值相同,可以用来相同开发商下不同App之间共享数据

IDFV是一个32位的十六进制序列(8-4-4-4-12), 896A7040-F380-4885-A093-D8892C54F5F1

获取方法:

[[UIDevice currentDevice] identifierForVendor].UUIDString;

iOS6之后可以使用

IMEI

IMEI (International Mobile Equipment Identity):国际移动设备识别码,由15位数字组成的”电子串号”,它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。手机用户可以在手机中查到自己手机的IMEI码。

iOS5可以使用,之后失效

IMSI

IMSI (International Mobile Subscriber Identification Number):国际移动用户识别码

IMSI分为两部分:

一部分叫MCC(Mobile Country Code 移动国家码),MCC的资源由国际电联(ITU)统一分配,唯一识别移动用户所属的国家,MCC共3位,中国地区的MCC为460

另一部分叫MNC(Mobile Network Code 移动网络号码),用于识别移动客户所属的移动网络运营商。MNC由二到三个十进制数组成,例如中国移动MNC为00、02、07,中国联通的MNC为01、06、09,中国电信的MNC为03、05、11

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

CTCarrier *carrier = [info subscriberCellularProvider];

 NSString *mcc = [carrier mobileCountryCode];

NSString *mnc = [carrier mobileNetworkCode];

NSString *imsi = [NSString stringWithFormat:@"%@%@", mcc, mnc];

iOS4以后可以使用

MAC地址

应用在iOS6及以下时,可以正确取道Mac地址,在iOS7上,会返回固定值

02:00:00:00:00:00

IP地址

 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) {

                // Check if interface is en0 which is the wifi connection on the iPhone

                if ([[NSString [stringWithUTF8String:temp_addr-](http://stringwithutf8stringtemp_addr-/)>ifa_name] isEqualToString:@"en0"]) {

                    // Get NSString from C String

                    address = [NSString [stringWithUTF8String:inet_ntoa](http://stringwithutf8stringinet_ntoa/)(((struct sockaddr_in  *)temp_addr->ifa_addr)->sin_addr)];

                }

            }

            temp_addr = temp_addr->ifa_next;

        }

    }

    freeifaddrs(interfaces);

    NSLog(@"%@", address);

注:感谢我的同事坤的分享~

相关文章

  • iOS IDFA等相关用户隐私信息获取方法介绍

    UDID UDID (Unique Device Identifier) :设备唯一标识符 UDID是一个40位十...

  • ios14 适配

    1. IDFA隐私加强 IDFA默认关闭,需要向用户申请获取权限,需要在info.plist中明示用户申请权限: ...

  • iOS-理解 : UDID、UUID、IDFA、IDFV

    iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?iOS获取设备ID总结IDFA解释 ...

  • IOS 14适配

    1. IDFA隐私加强 IDFA默认关闭,需要向用户申请获取权限,需要在info.plist中明示用户申请权限:k...

  • 各种获取设备唯一标识的方法介绍

    各种获取设备唯一标识的方法介绍 iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?

  • iOS14适配方案

    1. 隐私适配 iOS14最重要的更新之一:用户隐私和安全。 (1) 广告标识符IDFA 广告标识符IDFA全称I...

  • UUID、IDFA

    但是用下面2个方法获取UUID,IDFA是没有变化的,即使卸载重新装,需要注意的是,IDFA在设置-----隐私-...

  • 2021-03-30

    iOS14以后新增了广告标识【IDFA】的权限,获取方法有所改变,具体如下: 1>.获取:if (@availab...

  • iOS runtime--获取类信息

    iOS runtime--获取类信息 在iOS中可以通过runtime获取一个类的相关信息:有哪些方法、有哪些协议...

  • iOS个人信息获取说明

    iOS个人信息获取说明 需要授权获取的列表有iOS 10以后,苹果增强了对用户隐私的保护,访问照相机、相册、麦克风...

网友评论

      本文标题:iOS IDFA等相关用户隐私信息获取方法介绍

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