IMSI碼介紹
·國際移動用戶識別碼(IMSI:International Mobile Subscriber Identification Number)是區(qū)別移動用戶的標志趋厉,儲存在SIM卡中柱搜,可用于區(qū)別移動用戶的有效信息浦旱。其總長度不超過15位秀菱,同樣使用0~9的數字脱衙。其中MCC是移動用戶所屬國家代號分歇,占3位數字,中國的MCC規(guī)定為460勒叠;MNC是移動網號碼兜挨,由兩位或者三位數字組成,中國移動的移動網絡編碼(MNC)為00眯分;用于識別移動用戶所歸屬的移動通信網拌汇;MSIN是移動用戶識別碼,用以識別某一移動通信網中的移動用戶弊决。
引入
·為了在無線路徑和整個GSM(Global System for Mobile Communications噪舀,全球移動通信系統)移動通信網上正確地識別某個移動客戶,就必須給移動客戶分配一個特定的識別碼飘诗。
結構組合
·IMSI是15位的十進制數与倡。其結構如下:
MCC
+ MNC
+ MSIN
·MCC(Mobile Country Code,移動國家碼):MCC的資源由國際電信聯盟(ITU)在全世界范圍內統一分配和管理昆稿,唯一識別移動用戶所屬的國家纺座,共3位,中國為460溉潭。
·MNC(Mobile Network Code净响,移動網絡號碼):用于識別移動用戶所歸屬的移動通信網,2~3位喳瓣。
在同一個國家內馋贤,如果有多個PLMN(Public Land Mobile Network,公共陸地移動網畏陕,一般某個國家的一個運營商對應一個PLMN)配乓,可以通過MNC來進行區(qū)別,即每一個PLMN都要分配唯一的MNC。中國移動系統使用00扰付、02、04仁讨、07羽莺,中國聯通GSM系統使用01、06洞豁、09盐固,中國電信CDMA系統使用03、05丈挟、電信4G使用11刁卜,中國鐵通系統使用20。
·MSIN(Mobile Subscriber Identification Number曙咽,移動用戶識別號碼):用以識別某一移動通信網中的移動用戶蛔趴。共有10位,其結構如下:
EF+M0M1M2M3+ABCD
其中例朱,EF由運營商分配孝情;M0M1M2M3和MDN(Mobile Directory Number,移動用戶號碼簿號碼)中的H0H1H2H3可存在對應關系洒嗤;ABCD:四位箫荡,自由分配。
算法
-- lua算法
-- 獲取隨機IMSI
function getRandomIMSI()
local mncArray = { "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "11", "20" }
local msinArray = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }
local mcc = "460"
local mnc = getRandomStr(mncArray, 1)
local msin = getRandomStr(msinArray, 10)
return mcc .. mnc .. msin
end
-- 返回指定數量的隨機字符串
function getRandomStr(numArray, count)
local str = ""
math.randomseed(tostring(os.time()):reverse():sub(1, 6))
for i = 1, count do
local index = 0
index = math.random(1, #numArray)
str = str .. numArray[index]
end
return str
end