2012-07-23 135 views
4

问题很简单。我有一个IMEI,我想从中检索一个TAC。我该怎么做?如果我只有一个IMEI,有没有一种方法可以识别TAC应该有多少位数?是否有必要明确知道设备的生产年份以了解它?如何从IMEI检索TAC?

+0

你最终使用了什么解决方案? – John 2015-04-21 08:32:09

回答

4

从头开始读取8位数字。 6位数的TAC很少,并且是过去的(自2004年以来)。

但是为了安全起见,您可以分析两次,并从最长的版本开始,然后使用较短的版本。如果您找到手机型号,那么您使用该TAC。如果不是,则使用8位数字,因为旧手机是众所周知的(在大多数情况下)。

要变换TAC到手机型号使用的数据库:

+0

我主要关心的是如何识别TAC类型 - 6或8位数字。据你介绍,有必要参考设备数据库来做到这一点。谢谢。 – 2012-09-14 14:23:58

4

IMEI号码的前八位数字是TAC码。在2004年之前,前六位数字是实际的设备标识符,接下来的两位是代表设备制造地点的最终组装代码(FAC)。从那时起,FAC部分就被放弃了。

TAC代码由两个权威机构(北美CTIA和其他地区的GSM协会)颁发,由前两位数字标识。由于TAC代码是按顺序发布的,因此您可以测试位置3至6以识别6位TAC代码。比如,我用这样的代码:

if substr(IMEI,1,2) = '01' and substr(IMEI,1,8) < '01015900' /* CTIA */ 
    or substr(IMEI,1,2) = '35' and substr(IMEI,1,8) < '35150100' /* GSMA */ 
    then TAC_TYPE = '6-digit'; 
    else TAC_TYPE = '8-digit'; 

这些范围是由我的TAC码表的个人调查确定,并不能保证。

有关更多信息,请参阅this Wikipedia link

+0

感谢您的一段代码,但这是我的主要担忧 - 我如何识别TAC类型(6或8位数字)。 – 2012-09-14 10:40:22