手机IMEI码规则介绍
2019獨角獸企業重金招聘Python工程師標準>>>
手機IMEI碼由15-17位數字組成。
第一部分?TAC,Type Allocation Code,類型分配碼,由8位數字組成(早期是6位),是區分手機品牌和型號的編碼,該代碼由GSMA及其授權機構分配。其中TAC碼前兩位又是分配機構標識(Reporting Body Identifier),是授權IMEI碼分配機構的代碼,如01為美國CTIA,35為英國BABT,86為中國TAF。
第二部分?FAC,Final Assembly Code,最終裝配地代碼,由2位數字構成,僅在早期TAC碼為6位的手機中存在,所以TAC和FAC碼合計一共8位數字。FAC碼用于生產商內部區分生產地代碼。
第三部分?SNR,Serial Number,序列號,由第9位開始的6位數字組成,區分每部手機的生產序列號。
第四部分?CD,Check Digit,驗證碼,由前14位數字通過Luhn算法計算得出。
第五部分?SVN,Software Version Number,軟件版本號,區分同型號手機出廠時使用的不同軟件版本,僅在部分品牌的部分機型中存在。
本站查詢IMEI碼僅需要輸入前15位,軟件版本號不需要輸入。
http://www.imeidb.com/imei-structure
IMEI/MEID校驗位計算
JAVA 實現 IMEI校驗碼算法
JAVA 批量生成IMEI 源代碼
手機IMEI碼規則及算法介紹
Luhn algorithm
檢測無用imei號:
#coding:utf-8 __author__ = 'Mickel' import sys from pymongo import MongoClient from pymongo.errors import DuplicateKeyErrordef checkLuhn(purportedCC=''):sum = 0parity = len(purportedCC) % 2for i, digit in enumerate([int(x) for x in purportedCC]):if i % 2 == parity:digit *= 2if digit > 9:digit -= 9sum += digitreturn sum % 10 == 0if __name__=="__main__":mode="aa"if mode=='DEV':print "測試 testing server importing."conn = MongoClient('xxx', 2777)db = conn.adrobot_v4else:print "正式 production server importing."conn = MongoClient('xxxx', 2777)db = conn.adrobot_v4db.authenticate("xx", "xx")collection = db.device#查詢所有記錄for data in collection.find():imei=data["_id"]if imei.isdigit() :flag=checkLuhn(imei)if flag==False:print imei," ",checkLuhn(imei)collection.remove({"_id":imei})else:print "包含字母"#sys.exit(2)# imei="A1000055BDB1AD"# print "A1000055BDB1AD".isdigit()# print checkLuhn(imei)?
轉載于:https://my.oschina.net/mickelfeng/blog/1552269
總結
以上是生活随笔為你收集整理的手机IMEI码规则介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用MATLAB对平行板电容器与加盖导体槽
- 下一篇: 拓扑排序(含代码)