IMEI為15位數字
格式為AAAAAAAA BBBBBB C
AAAAAAAA 為 Type Allocation Code
BBBBBB 為 Serial Number
C 為 Check Digit
IMEI校驗碼算法:
(1).將偶數位數字分別乘以2,分別計算個位數和十位數之和
(2).將奇數位數字相加,再加上上一步算得的值
(3).如果得出的數個位是0則校驗位為0,否則為10減去個位數
如下是批量生成1000筆IMEI數據的Python實現代碼.
#!/usr/bin/python # -*- coding: UTF-8 -*- def genImeiLuhn(digits14): digit15=0 for num in range(14): if num%2==0: digit15=digit15+int(digits14[num]) else: digit15=digit15+(int(digits14[num])*2)%10+(int(digits14[num])*2)/10 digit15=int(digit15)%10 if digit15==0: digits14=digits14+str(digit15) else: digits14=digits14+str(10-digit15) return digits14 def genMassImei(stat14digits,amount,filepath): fo=open(filepath,"wb") for num in range(amount): imei=genImeiLuhn(stat14digits) stat14digits=str(long(stat14digits)+1) fo.write(imei+"\r\n") print imei fo.flush() fo.close() genMassImei("12345678901234",1000,"imei2.txt")
