从手机内部提取电话号码与IP属地的映射表

在不同品牌的手机中,这一张映射表存放位置可能不同,如果各位需要提取自己手机中的映射表,可以通过搜索引擎或者询问LLM了解自己机型的提取方法。

提取映射表

本例中笔者使用的手机品牌为红米,存放位置在:/system/framework/ext.jar,首先找到这个ext.jar包:

b9aa85e999b687b61f3b84c99835b87f

选择打开方式为预览压缩包,在ext.jar内部com/android/i18n/phonenumbers/geocoding/data/86_zh找到我们需要的表:

a8631aebeed8d802e333495eeb77dfd7

86_zh即为中国大陆手机号与IP属地映射表。

解析映射表

提取到的解析表是谷歌libphonenumber官方的二进制归属地数据文件,不能直接用 SQLite 打开,必须用专用格式解析。

b2f5a750942efe596007f1ebe28cd50b

我编写了一个python脚本,用于解析当前映射表的号码和属地,各位读者可以到GitHub上获取脚本。
Github仓库地址:https://github.com/S1ayed/phoneLocationExtract
phone_extract.py脚本用于从提取出的86_zh读取出IP属地和手机号的映射关系,保存在phone_location_table.yaml文件中。
b2f4cdbb87c6dcb4b6f3c19b92273b91
58be7d8b0098b78a66f19f7aac3e7739

phone_query.py脚本会读取当前目录下的phone_location_table.yaml并监听用户输入,当用户输入一个7位手机号(3位运营商号码 + 4位地址号码)时,在yaml中查询IP属地并返回。
0b212d48c20f9e0cf3e62fe3c9826d01

posted @ 2026-04-13 11:43  Slayed  阅读(8)  评论(0)    收藏  举报