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,如需转载请自行联系原作者

iphone 通过获取IMSI判断运营商相关推荐

  1. 手机IMSI码规则更新-通过IMSI判断运营商的方法

    ps:权限需要注意下: READ_PHONE_STATE 读取手机的状态权限可以通过查找TelephonyManager.有些方法需要权限,比如getLine1Number(),getSubscrib ...

  2. 通过IMSI判断运营商的方法

    因为某些SIM/USIM卡没有写入卡号,所以通过相关接口读取手机号的时候可能为空,鉴于此,使用IMSI的MCC/MNC来判断运营商是比较准确的选择: public static boolean isC ...

  3. iPhone判断运营商

    2019独角兽企业重金招聘Python工程师标准>>> - (NSString *)getCarrier { NSString *strCarrier = nil; CTTeleph ...

  4. mysql通过正则表达式根据手机号判断运营商

    最近在做一个大数据项目,其中涉及到数据需要从一个库抽到另一个库,抽取的过程中需要做一些数据清洗和转换,然后就遇到了需要根据手机号判断运营商的需求,编写sql尝试了两三个小时,才解决掉这个问题,在此写个 ...

  5. 根据IMSI区别运营商

    根据IMSI区别运营商 IMSI说明 MNC 和 各个运营商的对照表 (持续更新) IMSI说明 国际移动用户识别码即IMSI(International Mobile Subscriber Iden ...

  6. 最全的根据号码判断运营商的工具类

    最全的根据传入号码判断该号码属于哪个运营商的工具类 public class OperatorUtils {private static String CMCC = "移动";pr ...

  7. php匹配运营商,PHP根据手机号判断运营商方法分享

    本文主要介绍了PHP根据手机号判断运营商,详细介绍附代码,大家可以根据最新的号段进行添加即可,通过正则判断实现,需要的朋友可以参考下,希望能帮助到大家. 道理很简单,知道手机号规则 进行正则判断就可以 ...

  8. php判断运营商,PHP根据手机号判断运营商

    这篇文章主要介绍了PHP根据手机号判断运营商,详细介绍附代码,大家可以根据最新的号段进行添加即可,通过正则判断实现,需要的朋友可以参考下 道理很简单,知道手机号规则 进行正则判断就可以 移动:134. ...

  9. php判断运营商,PHP如何实现根据手机号判断运营商(实例)

    本篇文章主要介绍PHP如何实现根据手机号判断运营商,感兴趣的朋友参考下,希望对大家有所帮助. HTML页面 手机号归属 //修改为自己的路径 /* 移动:134.135.136.137.138.139 ...

最新文章

  1. 用最少的时间学最多的数据挖掘知识(附教程数据源)| CSDN博文精选
  2. python csv读取-Python读取csv文件(详解版,看了无师自通)
  3. (江西财经大学第二届程序设计竞赛同步赛)E-是不是复读机
  4. 回调函数(CALLBACK)学习总结
  5. 一步步实现SDDC-部署VC后的配置
  6. 训练集、验证集、测试集详解和极其作用
  7. [ActionScript 3.0] 通过as3操作web内容
  8. 俄罗斯方块c语言游戏代码大全,C语言实现俄罗斯方块小游戏
  9. C51单片机实验——定时器实验
  10. 大数据发展的7个趋势
  11. C# 读取写入Json文件
  12. pt tools 绑定pt站点失败 解决的3种方法
  13. android中APK开机自动运行
  14. 全国企业信用信息 网站
  15. 零散专题32 生成PDF
  16. SteamVR 2.x手部模型、控制器的替换(12)
  17. 关于亚马逊测评自养号IP的使用
  18. 3d游戏建模|3D电影、游戏角色是怎么制作的?
  19. java实习面试复盘(22年广州番禺)
  20. Tableau数据分析-Chapter13雷达图和凹凸图

热门文章

  1. 计算机新建用户会不会速度快,创建帐户让电脑系统速度比重装还快
  2. example 排序_个性化推荐系统源代码之基于 WideDeep模型的在线排序
  3. 统计字符串中每个字符的个数_C++程序设计——统计数字字符个数
  4. python中索引和下标_Series下标索引、标签索引、切片索引、布尔索引
  5. mysql 排名_SQL语句mysql排名、分组后组内排名、取各组的前几名
  6. linux tlhelp32.h,CreateToolhelp32Snapshot
  7. python自助电影售票机_Spring Cloud版——电影售票系统六使用 Spring Cloud Config 统一管理微服务配置...
  8. 如何把程序挂在远端服务器python_Pycharm连接远程服务器并实现远程调试的实现...
  9. D3 Geographies
  10. python jsonpath