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+" ") print imei fo.flush() fo.close() genMassImei("12345678901234",1000,"imei2.txt")