
IMSI共有15位
其结构如下:IMSI=MCC+MNC+MSIN ,(MNC+MSIN=NMSI)
MCC:Mobile Country Code,移动国家码,MCC的资源由国际电联(ITU)统一分配和管理,唯一识别移动用户所属的国家,共3位,中国为460;
MNC:Mobile Network Code,移动网络码,共2位,中国移动GSM统使用00、02,中国联通GSM系统使用01,中国电信CDMA系统使用03,中国移动TD系统使用07,一个典型的IMSI号码为460030912121001;
Origination Message和General Page Message这两条消息里能看到。
系统通过此消息寻呼MS,如果MS收到此消息并正确识别自己的MIN号码,则通过PAGING REPONSE MSG 消息回复系统。在发送PAGING REPONSE MSG的同时,手机会进行位置更新。General Page Msg中包含使用同一时隙的其他用户的IMSI号码,此IMSI在空间传播是经过加密的,手机经过一定的算法算出时间的IMSI。MS在收到General Page Msg时,会在200ms内发送PAGING REPONSE MSG。
方法是;以安卓手机 *** 作为例:
1、首先打开手机;如图。
2、点选手机中的“电话”进去;如图。
3、在电话中,选择“通话”界面;如图。
4、在通话界面,输入“#06#”;如图。
5、最后即d出手机的IMEI号;如图。
IMSI是15位的十进制数,其结构为:MCC+MNC+MSIN
MCC(Mobile Country Code,移动国家码)MCC的资源由国际电联(ITU)统一分配和管理,唯一识别移动用户所属的国家,共3位
在SIM卡中MCC就是IMSI的前三位,位于6F07文件下面
卡1:460040181839878
卡2:310410890453511
byte1为长度,byte2的低位为校验位,后面的几个byte都是高低位先反的,所以拼接的时候要注意。
或者可以使用AT命令进行读:
下面列出各国家的MCC:
Mobile Network Code,移动网络码,2/3位。如:中国移动TD系统使用00,中国联通GSM系统使用01,中国移动GSM系统使用02,中国电信CDMA系统使用03。
由于MNC的位数是不一定的,虽然国内固定是2位,但是有些运营商的MNC为3位,如加拿大的ROGERS:302720,ATT:310410。那我们以什么为依据判断是几位呢?
在EF文件里的 6FAD(Administrative Data) 可以判断:
可以看到第4个byte表示MNC的长度。
卡1:460040181839878
卡2:310410890453511
MSIN(Mobile Subscriber Identification Number,移动用户识别号码):用以识别某一移动通信网中的移动用户。
共有9/10位,其结构如下:EF+M0M1M2M3+ABCD;
其中,EF由运营商分配,如MNC为3为时者没有EF数据;
M0M1M2M3和MDN(Mobile Directory Number,移动用户号码簿号码)中的H0H1H2H3可存在对应关系;
ABCD:四位,自由分配。
参考文献:3GPP,ISO7816,百度百科等
Android获取IMSI和IMEI :
IMSI是一个唯一的数字,标识了GSM和UMTS 网络里的唯一一个用户
它存储 在手机的SIM卡里,它会通过手机发送到网络上。
IMEI也是一串唯一的数字,标识了GSM 和UMTS网络里的三星 Galaxy I9100。
它通常被打印在手机里电池下面的那一面,拨 #06# 也能看到它。
代码:
这里是你在Android里读出 唯一的 IMSI-ID / IMEI-ID 的方法。
Java:
String myIMSI =
androidosSystemPropertiesget(androidtelephonyTelephonyPropertiesPROPERTY_IMSI
);
// within my emulator it returns: 310995000000000
String myIMEI =
androidosSystemPropertiesget(androidtelephonyTelephonyPropertiesPROPERTY_IMEI
);
// within my emulator it returns: 000000000000000
手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手
机号码的数据写入到sim卡中。sim卡只有唯一的编号,供网络与设备识别那就是imsi号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。
试想,你的sim丢失后,补办一张新的会换号码吗 —不会就是因为在你的手机号码对应的 imsi号在移动运营商中被修改成新sim卡的imsi号码。
这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。
/ 获得手机的一些标志符 @param c @return String 手机的类型 /
public String fetch_status(Context c) {
TelephonyManager tm = (TelephonyManager) c
getSystemService(ContextTELEPHONY_SERVICE);//
String str = "";
String IMSI = tmgetSubscriberId();
str += "DeviceId(IMEI) = " + tmgetDeviceId() + "/n";
str += "DeviceSoftwareVersion = " + tmgetDeviceSoftwareVersion()
+ "/n";
str += "Line1Number = " + tmgetLine1Number() + "/n";
return str;
}
以上就是关于CDMA的IMS号码I一般是几位的如果从信令解码,可以从哪条信令查看IMSI号码全部的内容,包括:CDMA的IMS号码I一般是几位的如果从信令解码,可以从哪条信令查看IMSI号码、怎么知道我手机的imsi码是多少、12-SIM数据交互之-IMSI=MCC+MNC+MSIN等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)