iphone 通过获取IMSI判断运营商
2012-02-07 20:43
295 查看
转自 http://blog.csdn.net/ArthurChenJS/article/details/6261769
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";
}
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";
}
相关文章推荐
- iphone 通过获取IMSI判断运营商
- iphone 通过获取IMSI判断运营商
- iphone 通过获取IMSI判断运营商
- iphone 通过获取IMSI判断运营商
- iphone 通过获取IMSI判断运营商
- iphone 通过获取IMSI判断运营商
- 通过IMSI判断运营商的方法
- 通过IMSI运营商判断[Android]
- iOS开发 - 获取网关IP,运营商,位置,可判断是在国内还是国外
- svn判断通过svnkit,获取最新的revision以及判断某个revsion是否存在
- Linux下父进程通过管道发送文件名给子进程,子进程获取文件名后首先判断文件是否存在,不存在,通过管道返回错误信息,存在,将文件内容返回给父进程
- android--获取手机的IMSI码,并判断是中国移动/中国联通/中国电信
- iOS获取运营商信息(IMSI)
- iphone 开发 判断 获取 移动 联通 网络 类型
- iPhone 判断运营商
- iphone开发中使用动态库(dylib)和动态加载framework (获取iphone的IMSI和设置飞行模式)
- Android通过获取Ip的方法判断手机是否联网
- iphone开发之通过unix系统底层获取和系统相关的硬件信息
- Smarty模版中获取session等参数以及通过session判断登录状况
- 获取iPhone的IMSI和IMEI号