`
lufengdie
  • 浏览: 247847 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

获取手机设备的IMSI / IMEI 信息

阅读更多

IMSI 全称为 International Mobile Subscriber Identity,中文翻译为国际移动用户识别码。它是在公众陆地移动电话网(PLMN)中用于唯一识别移动用户的一个号码。在GSM网络,这个号码通常被存放在SIM卡中。

IMEI 全称为 International Mobile Equipment Identity,中文翻译为国际移动装备辨识码, 即通常所说的手机序列号,用于在手机网络中识别每一部独立的手机,是国际上公认的手机标志序号,相当于移动电话的身份证。序列号共有15位数字,前6位(TAC)是型号核准号码,代表手机类型。接着2位(FAC)是最后装配号,代表产地。后6位(SNR)是串号,代表生产顺序号。最后1位(SP)一般为0,是检验码,备用。国际移动装备辨识码一般贴于机身背面与外包装上,同时也存在于手机记忆体中,通过输入*#06#即可查询。

Android中获取IMSI和IMEI的代码很简单,如下:view sourceprint?1 TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 

2 String imsi = mTelephonyMgr.getSubscriberId(); 

3 String imei = mTelephonyMgr.getDeviceId(); 

4 Log.i("IMSI", imsi); 

5 Log.i("IMEI", imei);

另外不要忘了在AndroidManifest.xml中加上读取手机状态的权限view sourceprint?1 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>



===========================


IMSI国际移动用户识别码(IMSI)   international mobile subscriber identity 

国际上为唯一识别一个移动用户所分配的号码。

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

IMSI共有15位,其结构如下:

MCC+MNC+MIN

MCC:Mobile Country Code,移动国家码,共3位,中国为460;

MNC:Mobile Network Code,移动网络码,由两位数字组成,用于识别移动用户所归属的移动网.MIN:移动用户识别号码,是一个十位的等长号码.

可以看出IMSI在MIN号码前加了MCC,可以区别出每个用户的来自的国家,因此可以实现国际漫游。在同一个国家内,如果有多个CDMA运营商,可以通过MNC来进行区别. IMEI    国际移动装备辨识码    International Mobile Equipment Identity由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。 首先你要知道什么是手机串号,IMEI俗称“串号”存储在手机的EEPROM(俗称码片)里,每一个移动设备都对一个唯一的IMEI。其组成结构为TAC(6位数字)+FAC(两位数字)+SNR(6位数字)+SP (1位数字)。TAC(设备型号核准号码),由欧洲型号认证中心分配。如果熟悉并了解这个号码对我们今后识别手机会起到非常大的作用.首先TAC码前三位在不同的时期会发生变化,过去的TAC码前三位在现在的手机上不会出现。过去的一些老型号的手机基本上都是446/448开头,如moto v328 nokia 7110,而且即使同一部手机在不同的时期也会有不同的TAC码如大家最熟悉的8210升级8250,如果前三位是448902就不能升级,因为CPU不同。因此过去所说的只要是同一型号的手机TAC码一定一样的说法是不够准确的,再如爱立信的同一型号手机T39MC在不同地区的地方亦会有不同的号码大陆行货为520406香港则为520407。我们知道这些区别后就可以通过TAC码来进行“设备识别”了,而不必去费心的去牢记IMEI的7.8位数字代表的产地。 

另外如果是同一型号的手机其TAC码不同至少说明该机在硬件上有差别,比如NOKIA8210,采用老版本CPU的8210的TAC码是448902,而一般能够写入8250软件版本TAC码则是350开头。实际上TAC码前三位代表的更多的是手机FTA后分配IMEI的时间,真正的设备型号鉴别还是后三位。在2手市场JS通常用T20的主板换上T29的外壳冒充T29售卖,然而T20TAC码为520259真正的T29SC则为520341,因此在拿到这样的手机的时候你只需要查看IMEI的TAC就能够了然于胸,但这并不意味IMEI7,8位没有作用,FAC(工厂装配码)由厂家编码,通常表示生产厂家及其装配地。这也是过去我们最为关注的数字,因为一般作为鉴别产地的号码,它能有非常有效的帮助用户识别手机来源和真伪。比如NOKIA的40/60地球人都知道代表产地是北京和东莞,只要不是这两个号码都被视为水货。而且如果我们结合TAC更可以进一步了解该机的真实身份,例如前面说过T20/T29,我们知道T29是爱立信在北京生产的而T20则产于南京,那么如果一部T29的IMEI上是520259-63。。。呵呵~~那么肯定是假货了。 

有时FAC也不能完全证明手机是否是行货,T68上市后热买一度造成缺货,因此爱立信代理商调集了一部分马来西亚生产(FAC码71)紧急救援,因此这部分有入网许可证T68同样是“行货”。(前面我们我们说过了IMEI和取得入网许可证之间的联系)不过,需要指出的是这部分T68仅限于前期一部分软件版本为R1B的T68。 

FAC码也不是一成不变的即使是同一产地的产品,如西门子3508I和MOTO C300因为其产量巨大已经从开始的37升级到40,而C300的行货FAC也有80/81/82。尤其重要的是欧洲型号认证中心今年重新分配了IMEI,FAC被和TAC合并在一起,FAC码的数字统一从00开始,因此无论什么型号什么品牌其7,8位均为00,如最新的C289,三星V200 、西门子A55、 索尼爱立信T618都在手机上出现了351***00这样的IMEI。幸好我们有前面介绍过的TAC码鉴别办法,如T618的IMEI虽然过去的FAC现在统一为00但港行和大陆行货TAC后三位上还是有差异的.港行为351253大陆T618为351254,其实这里已经说明了一个问题351253代表的是T610(中文繁体版)351254则为T618。而TAC码的真正含义正在于此--设备型号核准。 

接下来该说SNR码了。SNR码即序号码,也由厂家分配。识别每个TAC和FAC中的某个设备的。每一部手机的SNR都不会一样.简单的说该号码可以说明手机出产日期的先后,通常数值越大说明该机型出厂时间越晚,所以如果一部刚上市不久的手机的IMEI上出现了6位的数字你就得了小心了,因为刚上市不久的手机其SNR最多不会超过四位,大家可以在购机时留意一下。也许这可以作为鉴别手机是否被JS修改IMEI的好办法之一。 

SP备用码,顾名思义用来做备用的,关于SP只有一点需要说明现在的SP基本上没有象过去文章所说那样“一般为0”了,其号码由厂家做设置,可忽略。 

当然,有些手机在IMEI 上做了自己的定义.爱立信手机在待机时输入*#06#就会出现17位的IMEI,其最后两位的主要作用是用来识别软件版本。这里需要说明的是三星V200也开始使用17位的IMEI了,最后两位的主要作用是用来识别软件版本,一般来说数值越低版本也越低,比如T618的R1A版本为02而R1F版本则为03,最新的R1L版本是05。

   IMEI为TAC + FAC + SNR + SP
    其组成为:
1、前6位数(TAC)是"型号核准号码",一般代表机型。
2、接着的2位数(FAC)是"最后装配号",一般代表产地。
3、之后的6位数(SNR)是"串号",一般代表生产顺序号。
4、最后1位数(SP)通常是"0",为检验码,目前暂备用。

IMEI码贴在手机背面的标志上,并且读写于手机内存中。它也是该手机在厂家的"档案"和"身份证号"。

如何获得手机的IMEI码:可以在手机上按“*#06#”获得手机的IMEI码。 



分享到:
评论

相关推荐

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

    Android 操作系统提供了多种方法来获取手机的 IMSI、IMEI、序列号和手机号,这些信息对于移动应用程序的开发和维护非常重要。本文将详细介绍 Android 平台获取手机 IMSI、IMEI、序列号和手机号的方法。 1. 获取 ...

    WIndow mobile 6.0 以上 获取IMSI和IMEI

    在Windows Mobile 6.0及更高版本的操作系统中,获取手机设备的国际移动用户识别码(IMSI)和国际移动设备标识(IMEI)是开发者进行设备管理或网络通信功能开发时的重要步骤。这两个标识符在移动通信领域扮演着至关...

    [android平台][获取手机IMSI、IMEI、序列号及手机号的用法]

    在 Android 平台中,获取手机的 IMSI、IMEI、序列号及手机号是非常重要的,以下将详细介绍如何获取这些信息。 1. 获取运营商 SIM 卡 IMSI 号 使用 `android.os.SystemProperties` 类可以获取运营商 SIM 卡的 IMSI ...

    c#获取mobile手机的IMEI和IMSI

    IMEI是手机设备的唯一识别码,而IMSI则是移动网络用户的身份标识。在C#编程环境下,如果你需要在Windows Phone或者某些特定的Android设备上获取这些信息,通常会涉及到与设备硬件交互的部分。以下将详细讲解如何在C#...

    Android 读取IMSI 和IMEI号支持双卡双待

    IMEI则是手机设备的唯一标识,用于区分不同的移动设备,通常在手机丢失或被盗时,可以通过IMEI来追踪设备。 在双卡双待的Android设备上,由于存在两个SIM卡槽,所以可能会有两个IMSI和两个IMEI。为了获取这些信息,...

    Android 查看手机 IMEI IMSI

    IMEI是设备的唯一标识,而IMSI则与SIM卡相关联,代表了用户的身份。本DEMO将向我们展示如何在Android应用中获取这些信息。 IMEI是一个15位数字的序列号,每个具有移动通信功能的设备都有一个独特的IMEI,用于区分...

    VC++手机IMEI/IMSI 读取

    在移动通信领域,IMEI(国际移动设备识别码)和IMSI(国际移动用户标识)是两个关键的概念,用于唯一地标识每一台手机设备和移动网络中的用户身份。本文将详细探讨如何使用VC++编程语言来读取这些信息。 IMEI是每个...

    imsi_imei Windows Mobile平台获取

    在Windows Mobile平台上,获取IMSI(国际移动用户识别码)和IMEI(国际移动设备识别码)是移动设备开发中的重要任务,这通常涉及到通信模块的管理与设备识别。以下是对这些知识点的详细阐述: IMSI是每个移动网络...

    android 显示手机号码,手机imei imsi 手机设备号

    在Android系统中,获取和显示手机号码、IMEI(国际移动设备识别码)以及IMSI(国际移动用户识别码)是常见的需求,这些信息对于设备管理和应用开发具有重要作用。下面将详细阐述这些概念以及如何在Android中获取它们...

    华为手机查询S/N码、IMEI码、产品识别码工具 解锁工具

    - **查询.bat**:这是一个批处理文件,可能包含了通过命令行查询S/N码、IMEI码和产品识别码的脚本,用户只需运行这个文件即可获取设备信息。 - **使用说明.txt**:这是操作指南,详细解释如何安装驱动、连接手机、...

    IMSI.rar_IMEI_IMSI_windows mobile

    IMSI(International Mobile Subscriber Identity)和IMEI(International Mobile Equipment Identity)是两个非常关键的概念,尤其在Windows Mobile开发中,理解和利用这两个标识符对于开发针对移动设备的应用程序...

    WinCE下100%获取IMEI和IMSI号

    在C++编程中获取IMEI和IMSI号是一项挑战,因为这些信息通常存储在设备的硬件中,并且访问权限受到限制。以下是一些关于如何在WinCE系统中100%正确获取IMEI和IMSI的知识点: 1. **IMEI获取**: - 在WinCE系统中,...

    获取手机IMEI号,sim卡的IMSI号C#源码

    总之,通过C#获取IMEI号和IMSI号涉及到对移动设备硬件和网络通信的理解,以及对相应平台API的熟悉。在开发过程中,需要遵守隐私法规,确保用户数据的安全。`MobileCore.cs`和`TapiLib.dll`是实现这些功能的关键组件...

    C# windows mobile 获得IMEI号和IMSI号

    在IT行业中,尤其是在移动开发领域,IMEI(国际移动设备识别码)和IMSI(国际移动用户识别码)是两个非常关键的概念。IMEI主要用于唯一标识一部手机,而IMSI则是用于识别移动网络中的特定用户。本文将深入探讨如何在...

    获取手机SIM卡上IMSI号码的小程序

    对应的文档(源代码)如下: http://blog.csdn.net/a_flying_bird/article/details/38309021

    android 获取手机上面的IMSI序列号

    本文将详细介绍如何在Android应用中获取IMSI(国际移动用户识别码)、IMEI(国际移动设备识别码)、MAC地址、IP地址、当前时间、经纬度以及网络类型。 首先,让我们了解这些概念: 1. **IMSI**:IMSI是手机用户在...

    Windows Mobile 取得 IMEI、IMSI

    在Windows Mobile操作系统中,IMEI(国际移动设备识别码)和IMSI(国际移动用户识别码)是两个非常重要的概念,它们与移动通信设备的身份标识紧密相关。IMEI是每台GSM(全球系统移动通信)和UMTS(通用分组无线业务...

    C#取手机IEMI、ISMI等设备信息

    IMEI是每个手机设备的全球唯一标识,通常用于区分不同的手机设备。IMSI则是移动网络中分配给每个SIM卡的唯一识别码,用于区分不同的移动用户。这两个标识符在开发过程中有着广泛的应用,例如设备注册、防盗追踪、...

    Tapi.zip_IMEI_IMSI_tapi

    这可能涉及到Windows API调用,如`lineGetDeviceCaps`函数来获取设备信息,或者`lineOpen`和`lineGetID`来与电话硬件交互并读取IMEI和IMSI。 总结来说,IMEI和IMSI是移动通信中用于设备和用户识别的关键标识,而...

Global site tag (gtag.js) - Google Analytics