1. 程式人生 > >最全的IMSI獲取手機號段、歸屬地java程式碼

最全的IMSI獲取手機號段、歸屬地java程式碼

IMSI獲取手機號段、歸屬地

IMSI國際移動使用者識別碼(IMSI:International Mobile Subscriber Identification Number)是區別移動使用者的標誌,儲存在SIM卡中,可用於區別移動使用者的有效資訊。其總長度不超過15位,同樣使用0~9的數字。其中MCC是移動使用者所屬國家代號,佔3位數字,中國的MCC規定為460;MNC是移動網號碼,由兩位或者三位數字組成,中國移動的行動網路編碼(MNC)為00;用於識別移動使用者所歸屬的行動通訊網;MSIN是移動使用者識別碼,用以識別某一行動通訊網中的移動使用者。簡單的說IMSI就是手機號碼的標識。

先看反向程式碼

public static String getMobileAll(String imsi){
        String s130  = "^46001(\\d{3})(\\d)[0,1]\\d+";
        String s131 = "^46001(\\d{3})(\\d)9\\d+";
        String s132 = "^46001(\\d{3})(\\d)2\\d+";
        String s134 = "^460020(\\d)(\\d{3})\\d+";
        String s13x0 = "^46000(\\d{3})([5,6,7,8,9])\\d+";
        String s13x = "^46000(\\d{3})([0,1,2,3,4])(\\d)\\d+"
; String s150 = "^460023(\\d)(\\d{3})\\d+"; String s151 = "^460021(\\d)(\\d{3})\\d+"; String s152 = "^460022(\\d)(\\d{3})\\d+"; String s155 = "^46001(\\d{3})(\\d)4\\d+"; String s156 = "^46001(\\d{3})(\\d)3\\d+"; String s157 = "^460077(\\d)(\\d{3})\\d+"; String s158 = "^460028(\\d)(\\d{3})\\d+"
; String s159 = "^460029(\\d)(\\d{3})\\d+"; String s147 = "^460079(\\d)(\\d{3})\\d+"; String s185 = "^46001(\\d{3})(\\d)5\\d+"; String s186 = "^46001(\\d{3})(\\d)6\\d+"; String s187 = "^460027(\\d)(\\d{3})\\d+"; String s188 = "^460078(\\d)(\\d{3})\\d+"; String s1705 = "^460070(\\d)(\\d{3})\\d+"; String s170x = "^46001(\\d{3})(\\d)8\\d+"; String s178 = "^460075(\\d)(\\d{3})\\d+"; String s145 = "^46001(\\d{3})(\\d)7\\d+"; String s182 = "^460026(\\d)(\\d{3})\\d+"; String s183 = "^460025(\\d)(\\d{3})\\d+"; String s184 = "^460024(\\d)(\\d{3})\\d+"; //電信的,下面的還沒有找到規則 String s180 = "^46003(\\d)(\\d{3})7\\d+"; String s153 = "^46003(\\d)(\\d{3})8\\d+"; String s189 = "^46003(\\d)(\\d{3})9\\d+"; String[] result = compile(s130,imsi); if(result != null && result.length==2){ return "130"+result[1]+result[0]; } result = compile(s131,imsi); if(result != null && result.length==2){ return "131"+result[1]+result[0]; } result = compile(s132,imsi); if(result != null && result.length==2){ return "132"+result[1]+result[0]; } result = compile(s134,imsi); if(result != null && result.length==2){ return "134"+result[0]+result[1]; } result = compile(s13x0,imsi); if(result != null && result.length==2){ return "13"+result[1]+"0"+result[0]; } result = compile(s13x,imsi); if(result != null && result.length==3){ return "13"+(Integer.parseInt(result[1])+5)+result[2]+result[0]; } result = compile(s150,imsi); if(result != null && result.length==2){ return "150"+result[0]+result[1]; } result = compile(s151,imsi); if(result != null && result.length==2){ return "151"+result[0]+result[1]; } result = compile(s152,imsi); if(result != null && result.length==2){ return "152"+result[0]+result[1]; } result = compile(s155,imsi); if(result != null && result.length==2){ return "155"+result[1]+result[0]; } result = compile(s156,imsi); if(result != null && result.length==2){ return "156"+result[1]+result[0]; } result = compile(s157,imsi); if(result != null && result.length==2){ return "157"+result[0]+result[1]; } result = compile(s158,imsi); if(result != null && result.length==2){ return "158"+result[0]+result[1]; } result = compile(s159,imsi); if(result != null && result.length==2){ return "159"+result[0]+result[1]; } result = compile(s147,imsi); if(result != null && result.length==2){ return "147"+result[0]+result[1]; } result = compile(s185,imsi); if(result != null && result.length==2){ return "185"+result[1]+result[0]; } result = compile(s186,imsi); if(result != null && result.length==2){ return "186"+result[1]+result[0]; } result = compile(s187,imsi); if(result != null && result.length==2){ return "187"+result[0]+result[1]; } result = compile(s188,imsi); if(result != null && result.length==2){ return "188"+result[0]+result[1]; } result = compile(s1705,imsi); if(result != null && result.length==2){ return "170"+result[0]+result[1]; } result = compile(s170x,imsi); if(result != null && result.length==2){ return "170"+result[1]+result[0]; } result = compile(s178,imsi); if(result != null && result.length==2){ return "178"+result[0]+result[1]; } result = compile(s145,imsi); if(result != null && result.length==2){ return "145"+result[1]+result[0]; } result = compile(s182,imsi); if(result != null && result.length==2){ return "182"+result[0]+result[1]; } result = compile(s183,imsi); if(result != null && result.length==2){ return "183"+result[0]+result[1]; } result = compile(s184,imsi); if(result != null && result.length==2){ return "184"+result[0]+result[1]; } result = compile(s180,imsi); if(result != null && result.length==2){ return "180"+result[0]+result[1]; } result = compile(s153,imsi); if(result != null && result.length==2){ return "153"+result[0]+result[1]; } result = compile(s189,imsi); if(result != null && result.length==2){ return "189"+result[0]+result[1]; } return ""; } private static String[] compile(String reg,String imsi){ Pattern pattern = Pattern.compile(reg); Matcher matcher = pattern.matcher(imsi); if(matcher.find()){ String[] sArr = new String[matcher.groupCount()]; for(int i=0;i<matcher.groupCount();i++){ sArr[i] = matcher.group(i+1); } return sArr; } return null; } public static void main(String[] args) { System.out.println(getMobileAll("460021234512345")); }

這一步只是知道了手機號段,歸屬地可以先下載歸屬地資料庫,然後歸屬地就有了,免積分下載

為什麼沒有電信的?因為我也沒找到電信的規則!

相關推薦

IMSI獲取機號屬地java程式碼

IMSI獲取手機號段、歸屬地 IMSI國際移動使用者識別碼(IMSI:International Mobile Subscriber Identification Number)是區別移動使用者的標誌,儲存在SIM卡中,可用於區別移動使用者的有效資訊。其總長度

Python3(phone)模組獲取機號歸屬地區號運營商等

from phone import Phone import xlrd import xlwt def Get_Excel_data(): file = 'Tel.xlsx' #電話號碼儲存的excle表 re1 = xlrd.open_workbook(file)

目前獲取IMSI方法

private Integer simId_1 = 0; private Integer simId_2 = 1; private String imsi_1 = ""; private String imsi_2 = ""; private String ime

移動聯通電信三大運營商機號大全 附機號正則表示式

正則表示式: ^((+86)?(13\d|14[5-9]|15[0-35-9]|166|17[0-8]|18\d|19[8-9])\d{8})$

【轉載】史上:TensorFlow 好玩的技術應用和你不知道的黑科技

tube map 高性能 知識 seq 出現 執行時間 mes lex 【導讀】TensorFlow 在 2015 年年底一出現就受到了極大的關註,經過一年多的發展,已經成為了在機器學習、深度學習項目中最受歡迎的框架之一。自發布以來,TensorFlow 不斷在完善並增加新

delphi for android 獲取機號

cti content tex BL1 string tlab man ria sender delphi for android 獲取手機號 uses System.SysUtils, System.Types, System.UITypes, System.

史上的 Sublime Text 漢化外掛安裝合集

原文地址: 史上最全的 Sublime Text 漢化、外掛安裝合集      https://www.jianshu.com/p/ecc241f22ed5 原文作者寫的很不錯的,另外我加一個sublime3的破解版的地址:請再安全環境下點選http:

獲取元素寬高及位置的方法

offsetWidth / offsetHeight offsetWidth HTMLElement.offsetWidth 是一個只讀屬性,返回一個元素的佈局寬度。一個典型的(各瀏覽器的offsetWidth可能有所不同)offsetWidth是測量包含元素的邊框(border)、水平線上的內邊距(pa

小程式--一鍵獲取機號,控制按鈕顯示與隱藏

點選按鈕,呼叫後臺介面獲取到使用者的手機號,將獲取到的手機號渲染到input框裡面,同時,按鈕消失,即當input框不為空的時候,按鈕消失;input框為空的時候,按鈕顯示。 <view class="addAddress addAddressLine"> &

小程式獲取機號

getmobile: function(e) { let that = this; wx.request({ url: that.data.api + '/toker/getphone/getmobile/', data: { 'encryptedData': e.

-獲取機號地址

import android.annotation.SuppressLint; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; imp

微信開發之小程式獲取機號授權登入

小程式中有很多地方都會用到註冊使用者資訊的地方,使用者需要填寫手機號等,有了這個元件可以快速獲取微信繫結手機號碼,無須使用者填寫。1.getPhoneNumber這個元件通過button來實現(別的標籤無效)。將button中的open-type=“getPhoneNumbe

python爬取機號(電信199號

# -*- coding: GBK -*- """ 爬取手機號段歸屬地 """ import time import requests from lxml import etree ti

機號正則表示式 (2019-01 最新)

ி 前言 溫馨提示: 首先,有一點注意的是,手機號這種東西會不斷更新(時間跨度比較長,具體規則估計得去工信部檢視) 所以,個人認為網上流傳的大多數介紹其 正則表示式 的文章,是無法保證規範與時效性的 總結來說,如果想要保障嚴謹的規範性,就無法保證時效性, 建議花個十幾分鍾看一

虛擬運營商165全新號正式上市,這也是第一個16×級別的機號

  1月6日,虛擬運營商165全新號段正式上市,這也是第一個16×級別的手機號段。   165號段由與中國移動開展行動通訊轉售業務合作的17家虛擬運營商共同運營,該號段的釋出標誌著國內移動轉售產業首個16×億級號段正式上市運營,同時,虛擬運營商165號段品牌也是國內移動轉售產業由多家虛擬運營商聯合釋

JS中正則表示式詳解及基本的判斷機號,郵箱,身份證

    首先最基本的符號型別及含義整理一下。     1,最基本的符號:^  $  *  +  ?         ^    代表字串的開始位置 &nbs

簡單正則表示式獲取機號

首先匯入re模組# _*_coding:utf-8 _*_ import re再得到原始資料# 模擬手機號碼匹配 # 給定原始資料 myphone = "asdf15297901267asdf" 得到資料後根據個人需要來設定匹配表示式# 提供匹配規則 \d表示匹配一個數字

微信獲取機號授權登入

1. <button bindgetphonenumber="getPhoneNumber" open-type="getPhoneNumber" class='button-hover'>確認授權</button> 2. getPhoneNumber: fu

斐訊K1&K2刷機韌體教程!最新整理版!(小米路由newifi通用)

前瞻:  工具的準備:電腦安裝[telnet客戶端]、下載安裝(或解壓Tftpd)、WinPcap(這是用於BreedEnter可以正常開啟的元件,必須安裝,不安裝無法開啟BreedEnter)、BreedEnter。 原生的韌體:斐訊V1版本韌體,SW_K1_70300

第十例:獲取機號獲取本機通訊錄中儲存的姓名

String sPhone = "xxxx"; //查詢的手機號    List<contactinfo> contactinfoList = new ArrayList<contactinfo>(); S