CDMA的IMS号码I一般是几位的如果从信令解码,可以从哪条信令查看IMSI号码

CDMA的IMS号码I一般是几位的如果从信令解码,可以从哪条信令查看IMSI号码,第1张

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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9730262.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存