国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。其中MCC是移动用户所属国家代号,占3位数字,中国的MCC规定为460;MNC是移动网号码,由两位或者三位数字组成,中国移动的移动网络编码(MNC)为00;用于识别移动用户所归属的移动通信网;MSIN是移动用户识别码,用以识别某一移动通信网中的移动用户。

简介

国际移动用户识别码(IMSI) international mobile subscriber identity
国际上为唯一识别一个移动用户所分配的号码。
从技术上讲,IMSI可以彻底解决国际漫游问题。但是由于北美目前仍有大量的AMPS系统使用MIN号码,且北美的MDN和MIN采用相同的编号,系统已经无法更改,所以目前国际漫游暂时还是以MIN为主。其中以0和1打头的MIN资源称为IRM(International Roaming MIN),由IFAST (International Forum on ANSI-41 Standards Technology)统一管理。目前联通申请的IRM资源以09打头。可以看出,随着用户的增长,用于国际漫游的MIN资源将很快耗尽,全球统一采用IMSI标识用户势在必行.

结构组合

IMSI共有15位,其结构如下:
MCC+MNC+MSIN
MCC:Mobile Country Code,移动国家码,MCC的资源由国际电联(ITU)统一分配和管理,唯一识别移动用户所属的国家,共3位,中国为460;
MNC:Mobile Network Code,移动网络码,2~3位,中国移动系统使用00、02、07,中国联通GSM系统使用01、06,中国电信CDMA系统使用03、05,中国铁通系统使用20,一个典型的IMSI号码为460030912121001;
MSIN:Mobile Subscriber Identification Number, 移动用户识别号码,共有10位,其结构如下:
EF+M0M1M2M3+ABCD
其中的M0M1M2M3和MDN号码中的H0H1H2H3可存在对应关系,ABCD四位为自由分配。
可以看出IMSI在NMSI号码前加了MCC,可以区别出每个用户的来自的国家,因此可以实现国际漫游。在同一个国家内,如果有多个移动网络运营商,可以通过MNC来进行区别.
IMSI与手机号码绑定关系,在网络侧网元HLR(Home Location Register)内定义。
================================
区别于IMEI:International Mobile Equipment Identity (国际移动设备标识)
国际移动用户识别码与开源项目
OpenBTS是基于软件的 GSM 接入口,它提供标准的GSM兼容的移动手机,不需使用现成的电话提供商的接口,来拨打现有电话系统的接口。OpenBTS是以第一个基于开源软件的工业标准的GSM协议栈而闻名。OpenBTS 使用的是国际移动用户识别码(IMSI) international mobile subscriber identity 。OpenBTS 和 OpenBSC 提供了在一个较低的层次上了解更多关于 GSM 网络的技术的开源平台。
 
http://www.cnblogs.com/kuili/p/3439069.html
 

MCC:  移动国家码,三个数字,如中国为 460

MNC:移动网号,两个数字,如中国移动的MNC为00(联通是01,移动159新号段是02,更多在此

MSIN:移动客户识别号,在某一PLMN中移动台的唯一识别码,MSIN=H0H1H2H3(S)XXXXXX(共11位)

中国移动网络编号:46000、46002、46007 (国家码+网号)

中国移动网络段号:
段号代码    手机段号      网络标识
    0            159             46002
    1            158             46002
    2            150             46002
    3            151             46002
    4            1340-1348   46002
    5            135             46000
    6            136             46000
    7            137             46000
    8            138             46000
    9            139             46000
    A            157             46007
    B            188             46007
    C            152             46002
    D            187             46007
    E            147             46007

中国移动SIM卡制造商列表:

制造商代码                 制造商名称
      0         法国斯伦贝谢
      1          法国金普斯    
        2           德国欧伽
      3          江西捷德    
        4          东信和平    
        5          大唐电信    
        6          航天九洲通    
        7          北京握奇    
        8          东方英卡    
        9          北京华虹    
        A          上海柯斯

中国移动卡性质: 0:普通单模卡    5:远程卡  E:预付费卡

[中国联通、中国电信]
示例IMSI号码: 46001  2 024 007697 T
匹配正则表达式:(01|03)(\d{2})(\w{1})(\w{1})(\d{3})(\d{6})(\w{1})
中国国际字冠(+86) + 国际网络运营商识别码 + 卡发行年 + 段号 + 段后地区识别码 + 所属城市区号 + 卡编号 + 卡制造商

中国联通、电信国际字冠:+86
中国联通、电信网络编号:46001(中国联通) 46003(中国电信)
中国联通、电信网络段号:

段号代码      手机段号            网络标识

0                  130                46001
1            131      46001
2            132      46001
3            133      46003
4            1349      46003
5            155      46001
6            156      46001
7            180      46003
8            153      46003
9            189      46003          
          

中国联通、电信SIM卡制造商列表:
制造商代码        制造商名称
A          东方英卡    
B          布尔公司    
C          上海柯斯    
D          欧贝特    
E          东信和平    
G          法国金普斯    
H          北京华虹    
J          江西捷德    
S          法国斯伦贝谢    
T          大唐电信    
W          北京握奇    
Y          武汉天喻
附:省份代码表
01:北京 02:天津 03:河北 04:山西 05:内蒙古 06:辽宁 07:吉林 08:黑龙江 09:上海 10:江苏 11:浙江 12:安徽 13:福建 14:江西 15:山东 16:河南 17:湖北  18:湖南 19:广东 20:广西 21:海南 22:四川 23:贵州  24:云南 25:西藏  26:陕西 27:甘肃 28:青海 29:宁夏 30:新 疆 31:重庆

IMSI的更多相关文章

  1. android 获取IMSI信息(判断是移动,联通,电信手机卡)

    首先我们需要知道手机IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信.那么第一步就是先获取手机IMSI号码:代码如下 /** *获取IMSI信息 * ...

  2. Android中获取IMSI和IMEI

    TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); Str ...

  3. [Android Pro] 通过IMSI判断手机是移动、联通、电信

    TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); /** 获取 ...

  4. (三)获取iphone的IMSI

    今天的任务是 iPhone上怎样获取 imsi 信息 来判断所属运营商,资料找了很久!总体有两种方案,但是其中一种好像不行 这里我都记录下来吧: 1: 这是使用coreTelephony.framew ...

  5. android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法

    1)获取运营商sim卡imsi号, String IMSI =android.os.SystemProperties.get( android.telephony.TelephonyPropertie ...

  6. msisdn与imsi简介

    =======================================imsi========================================1 定义:imsi=MCC+MNC ...

  7. android 点滴记录 ICCID IMSI IMEI MEID 关系 和 区别,相关参数在什么情况下可以获取...

    1:ICCID:Integrate circuit card identity 集成电路卡识别码(固化在手机SIM卡中) ICCID为IC卡的唯一识别号码,共有20位数字组成,其编码格式为:XXXXX ...

  8. Android获取IMSI和IMEI

    IMSI是一个 唯一的数字, 标识了GSM和UMTS 网络里的唯一一个用户. 它 存储 在手机的SIM卡里,它会通过手机发送到网络上. IMEI也是一串唯一的数字, 标识了 GSM 和 UMTS网络里 ...

  9. 关于android各种双卡手机获取imei,imsi的处理(mtk,展讯,高通等)

    目前国内对于双卡智能手机的需求还是很大的,各种复杂的业务会涉及到双卡模块:而android标准的api又不提供对双卡的支持.导致国内双卡模块标准混乱,各个厂商各玩各的.目前我知道的双卡解决方案就有:m ...

  10. 【Android】设备标识简介(imei imsi mac地址)

    IMEI: 1- 意义: 参考http://zh.wikipedia.org/zh-cn/IMEI  国际移动设备辨识码 ,共15位,和厂商,产地等有关. 2- 获取: 直接查看设备信息,设置-关于手 ...

随机推荐

  1. 73. Set Matrix Zeroes 把矩阵同一行列的元素都改成0

    [抄题]: Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in-place. ...

  2. java命令分析线程死锁以及内存泄漏

    一.介绍 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&qu ...

  3. springboot中使用ContextLoaderListener.getCurrentWebApplicationContext();获取WebApplicationContext为空问题

    WebApplicationContext applicationContext = ContextLoaderListener.getCurrentWebApplicationContext(); ...

  4. java【基础】多态

    new 接口就会发生很有意思的现象 public class InerClassDemo { public static void main(String[] args) { // TODO Auto ...

  5. MFC里面解析json文件格式

    CString strTemp; //CString ->string; string stringMsg = (LPCSTR)(CStringA)strTemp; //string -> ...

  6. trinitycore 魔兽服务器源码分析(二) 网络

    书接上文 继续分析Socket.h SocketMgr.h template<class T>class Socket : public std::enable_shared_from_t ...

  7. ----这是一个register code----

    这是一个register code,是需要用到<input>标签下的6个标签(?应该是标签喔) 然后附上代码 <html ><head><title>注 ...

  8. 整理python小爬虫

    编码使我快乐!!! 我也不知道为什么,遇到自己喜欢的事情,就越想做下去,可以一个月不出门,但是不能一天没有电脑 掌握程度:对python有了一个更清晰的认识,自动化运维,也许可以用python实现呢, ...

  9. RobotFramework+Selenium2软件安装教程

    1.安装python 必须是 2.7 版本    设置环境变量:F:\software\Python27;F:\software\Python27\Scripts;    重启电脑: 2.安装wxPy ...

  10. 接之前的文章,VS2017中使用Spring.NET配置以及使用方法(framework4.6.1超详细)

    众所周知,Spring在java中是很常见的框架,Spring.Net虽然体积比较大,但是功能相对齐全,本文介绍在VS2017 .Net FrameWork 4.6.1环境下,如何快速使用Spring ...