獲取SIM卡號 IMSI

2021-05-25 02:54:28 字數 1597 閱讀 7924

又到一周週未時,該寫部落格了,但想了一下,突然發現這周什麼也沒乾,也不知道寫什麼,最後突然在桌面上發現了這段**,獲取imsi用的,也就拿這東東來寫寫吧,趕快寫完得玩會遊戲,遊戲時間又到了,dota……

imsi也就是sim卡號,是使用者的唯一標識,imsi號碼結構為:

mcc------------- mnc------------------ msin

mcc=移動國家號碼,由3位數字組成,唯一地識別移動客戶所屬的國家。我國為460。

mnc=移動網號,由2位數字組成,用於識別移動客戶所歸屬的移動網。郵電部門gsm plmn網為00,「中國聯通公司」gsmplmn網為0l。

msin=移動客戶識別碼,採用等長11位數字構成。唯一地識別國內gsm移動通訊網中移動客戶。

獲取imsi可以用extapi中的linegetgeneralinfo,它會將各種硬體資訊返回到它的第二個結構成員中,即linegeneralinfo結構中。

這個結構定義如下:

typedef struct linegeneralinfo_tag linegeneralinfo, * lplinegeneralinfo;

lptstr   lstr = (tchar*)((byte*)plinedevcaps+plinedevcaps->dwlinenameoffset);

要使用linegetgeneralinfo,也要按照使用tapi的順序對程式進行初始化,做一些必要的操作才能呼叫linegetgeneralinfo。

要使用tapi,大概的順序為:

lineinitializeex

linenegotiateapiversion

lineopen

這幾個函式呼叫完之後就可以為獲得imsi來做準備了。

要獲得類似imsi、imei等的資訊,要從名稱為「cellular line」的裝置線路來獲得,所以開始就要列舉所有的裝置線路,然後查詢名字為「cellular line」的線路,找到之後,用這個裝置線路的控制代碼來作為linegeneralinfo的第乙個引數。

在使用linegeneralinfo以前,先把它的dwtotalsize設為它本身的大小,然後呼叫一次linegeneralinfo,執行完後,在linegeneralinfo中的dwneededsize結構中返回了要存放所有資訊所需要的空間,這時候只需根據這個成員來申請一塊記憶體,用乙個linegeneralinfo的指標指向它,然後再次呼叫linegetgeneralinfo,這時候它裡面就已經包含了各種有用的資訊了,你想要什麼就獲取什麼吧

下面貼下簡單的**:

int winapi winmain(hinstance hinstance,

hinstance hprevinstance,

lptstr    lpcmdline,

int       ncmdshow)

else }

} delete plinegeneralinfobytes;

return  10;

} 注:我用這段程式在有些模擬器上執行不成功,除錯了一下發現沒有找到名字為「cellular line」的裝置線路 ,不知道這是為什麼……

在sdk裡面有個exapi的例子,裡面有獲取imsi、imei、製造商、軟體版本等資訊的。

獲取sim卡號碼

package com.pei.activity import android.os.bundle import android.view.view import android.view.view.onclicklistener import android.widget.button impor...

SIM 卡的IMSI號含義

只能確定你手機號的前4位1376.後七位數字比較隨意.是不能確定的.也有的說用9999減去最後一排的前四位數就得到你手機的後四位數.這也只是個碰巧的問題.不信你可以用其他號碼實驗下.sim卡背面的號碼是sim卡的電子串號,也叫imsi號碼,這個號碼是全球唯一的,是國際電聯分配給每個運營商的,號碼和i...

SIM卡ICCID標識與IMSI的區別

iccid integrate circuit card identity 積體電路卡識別碼 固化在手機sim卡中 iccid為ic卡的唯一識別號碼,共有20位數字組成。imsi international mobile subscriberidentification number 國際移動使用者...