从手机内部提取电话号码与IP属地的映射表
在不同品牌的手机中,这一张映射表存放位置可能不同,如果各位需要提取自己手机中的映射表,可以通过搜索引擎或者询问LLM了解自己机型的提取方法。
提取映射表
本例中笔者使用的手机品牌为红米,存放位置在:/system/framework/ext.jar,首先找到这个ext.jar包:

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

86_zh即为中国大陆手机号与IP属地映射表。
解析映射表
提取到的解析表是谷歌libphonenumber官方的二进制归属地数据文件,不能直接用 SQLite 打开,必须用专用格式解析。

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


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


浙公网安备 33010602011771号