iphone 通过获取IMSI判断运营商

简介:

IMSI 共有 15 位,其结构如下:

MCC+MNC+MSIN ,( MNC+MSIN=NMSI 

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

MNC:Mobile Network Code ,移动网络码,共 2 位,中国移动 TD 系统使用 00 ,中国联通 GSM 系统使用 01 ,中国移动 GSM 系统使用 02 ,中国电信 CDMA 系统使用 03 ,一个典型的 IMSI 号码为 460030912121001;

MSIN:Mobile Subscriber Identification Number 共有 10 位,其结构如下:

09+M0M1M2M3+ABCD

其中的 M0M1M2M3  MDN 号码中的 H0H1H2H3 可存在对应关系, ABCD 四位为自由分配。

这样就可以依据 IMSI 中的 MCC  MNC 来确定运营商了。当然知道编码规则同时还是需要知道对应编码的的国家和网络了。

 

 

实现的代码如下:

/* China - CN 
* MCC    MNC    Brand    Operator                Status        Bands (MHz)                                    References and notes 
* 460    00            China Mobile            Operational    GSM 900/GSM 1800 UMTS (TD-SCDMA) 1880/2010 
* 460    01            China Unicom            Operational    GSM 900/GSM 1800/ UMTS 2100                    CDMA network sold to China Telecom, WCDMA commercial trial started in May 2009 and in full commercial operation as of October 2009. 
* 460    02            China Mobile            Operational    GSM 900/GSM 1800/ UMTS (TD-SCDMA) 1880/2010    
* 460    03            China Telecom            Operational    CDMA 800/cdma evdo 2100    
* 460    05            China Telecom            Operational        
* 460    06            China Unicom            Operational    GSM 900/GSM 1800/UMTS 2100    
* 460    07            China Mobile            Operational    GSM 900/GSM 1800/UMTS (TD-SCDMA) 1880/2010    
* 460    20            China Tietong            Operational    GSM-R    
* NA    NA            China Telecom&China Unicom    Operational        
*/ 
+ (NSString*)getCarrier:(NSString*)imsi 

    if (imsi == nil || [imsi isEqualToString:@"SIM Not Inserted"] ) { 
        return @"Unknown"; 
    } 
    else { 
        if ([[imsi substringWithRange:NSMakeRange(0, 3)] isEqualToString:@"460"]) { 
            NSInteger MNC = [[imsi substringWithRange:NSMakeRange(3, 2)] intValue]; 
            switch (MNC) { 
                case 00: 
                case 02: 
                case 07: 
                    return @"China Mobile"; 
                    break; 
                case 01: 
                case 06:    
                    return @"China Unicom"; 
                    break; 
                case 03: 
                case 05:    
                    return @"China Telecom"; 
                    break; 
                case 20: 
                    return @"China Tietong"; 
                    break; 
                default: 
                    break; 
            } 
        } 
    } 
    return @"Unknown"; 










本文转自 arthurchen 51CTO博客,原文链接:http://blog.51cto.com/arthurchen/577927,如需转载请自行联系原作者
目录
相关文章
|
iOS开发
IPhone 获取IMSI序列号
IPhone 获取IMSI序列号
442 0
|
自动驾驶 定位技术 vr&ar
苹果正在偷偷研发卫星!“臭鼬计划”让你的iPhone联网绕过无线运营商
彭博社报道,苹果希望在五年内部署卫星,已经组织了一个12人的绝密团队开发卫星技术。该技术可以使苹果的移动设备彼此通信,而无需中国移动之类的无线运营商。
344 0
苹果正在偷偷研发卫星!“臭鼬计划”让你的iPhone联网绕过无线运营商
|
编解码 iOS开发 UED
响应式设计在 iPhone 开发适配中的具体应用
【10月更文挑战第23天】响应式设计在 iPhone 开发适配中扮演着至关重要的角色,它能够帮助我们打造出适应不同屏幕尺寸和用户需求的高质量应用。通过合理运用响应式设计的原则和方法,我们可以在提供良好用户体验的同时,提高开发效率和应用的可维护性。
|
编解码 测试技术 iOS开发
iPhone 屏幕尺寸和开发适配
【10月更文挑战第23天】iPhone 的屏幕尺寸变化给开发者带来了一定的挑战,但也为创新提供了机遇。通过深入了解不同屏幕尺寸的特点,遵循适配原则和策略,运用合适的技巧和方法,我们能够为用户提供在不同 iPhone 机型上都具有良好体验的应用。在未来,随着技术的不断进步,我们还需要持续学习和适应,以满足用户对优质应用体验的不断追求。
|
数据采集 iOS开发 Python
Chatgpt教你开发iPhone风格计算器,Python代码实现
Chatgpt教你开发iPhone风格计算器,Python代码实现
382 1
|
编解码 iOS开发
iphone 开发的基本入门知识
iphone 开发的基本入门知识
473 0
|
Shell iOS开发
iOS逆向:tweak开发教程(iPhone/tool)
iOS逆向:tweak开发教程(iPhone/tool)
1757 0
iOS逆向:tweak开发教程(iPhone/tool)
「镁客早报」iPhone或将在今年采用三摄;传Facebook致力于开发语音助力服务与亚马逊、苹果竞争
亚马逊向美国Alexa设备推免费音乐服务;视频会议软件开发商Zoom纳斯达克上市。
435 0