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 来确定运营商了。当然知道编码规则同时还是需要知道对应编码的的国家和网络了。

iphone 通过获取IMSI判断运营商第1张

实现的代码如下:

/* 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";
}

免责声明:文章转载自《iphone 通过获取IMSI判断运营商》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在vscode中的vue单文件组件的代码提示以及自动符合Eslint规范资料分析 常刷下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C++面试

https://blog.csdn.net/weixin_44363885/article/details/99567746 这一行是个 贼鸡巴重要的链接!!!   很好的总结 我直接复制到下面了: 社招:社招的同学,无论是1-3年经验,还是中途转行,都可参考。写简历必须有针对性,以后台开发为例,请去拉勾网 / 猎聘 / 智联招聘等网站,多看看后台开发的J...

Iphone各个型号机型的详细参数,尺寸和dpr以及像素

1.iPhone尺寸规格 2.单位inch(英吋) 1 inch = 2.54cm = 25.4mm 3.iPhone手机宽高 上表中的宽高(width/height)为手机的物理尺寸,包括显示屏和边框。以下为iPhone4s的宽高示意图: 4.屏幕尺寸 我们通常所说的iPhone5屏幕尺寸为4英寸、iPhone6屏幕尺寸为4.7英寸,指的是显示屏对角线...

苹果产品时间发布表统计(iPhone、iPad),以及32位和64位机的说明

之前因为某些原因,需要对apple家族的手机和pad产品做一个上市时间排序,以及分析分别是哪种CPU机型 总结如下: iPad家族: 1、iPad     - 2010.1.27发布 2、iPad 2    - 2011.3.3发布 3、iPad Mini   - 2012年底发布 4、iPad Air    - 2013.10.23发布 5、iPad M...

一步步实现微信自动抢红包

一步一步实现iOS微信自动抢红包(非越狱) 字数2219 阅读54712 评论325 喜欢717 微信红包 前言:最近笔者在研究iOS逆向工程,顺便拿微信来练手,在非越狱手机上实现了微信自动抢红包的功能。 题外话:此教程是一篇严肃的学术探讨类文章,仅仅用于学习研究,也请读者不要用于商业或其他非法途径上,笔者一概不负责哟~~ 好了,接下来可以进入正题了...

[iOS]iPhone进行真机测试(基础版)

买完688个人开发者账号之后,如何进行真机测试呢??看下面 1.打开https://developer.apple.com   然后,输入我们买过688点那个App ID帐号和密码哦!!一定是要支付过的! 登陆后,如果你的页面不像下面的话,证明你的帐号不是支付过688元的帐号 (或者没有激活。如果没有激活请联系苹果客服) 第一部分: 这里我们选择配置证...

基于MCP2515的Linux CAN总线驱动程序设计(二)

基于MCP2515的Linux CAN总线驱动程序设计(二) 作者:李老师,华清远见嵌入式学院讲师。 1.前言 CAN(Controller Area Network)总线,即控制器局域网总线,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性、及独特的设计和适宜的价格而广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等...