如何获取已安装Android应用所连接的服务器IP地址
已安装安卓应用获取对接服务器IP的可行方案
可以实现,针对自研应用测试的场景,以下是几种不同门槛的可行方法:
1. 抓包法(最通用,无需改动现有代码)
- 前置条件:测试用安卓设备和抓包设备处于同一局域网,安卓7.0及以上版本需要让应用信任用户级CA证书,自研debug包默认支持信任,正式包可临时修改
networkSecurityConfig配置放开权限 - 操作流程:
- 电脑端安装抓包工具(Fiddler、Charles、tcpdump均可),配置好端口监听
- 修改安卓设备的WiFi代理,指向电脑的局域网IP+抓包工具端口
- 打开测试应用,触发账户类网络请求,抓包工具的请求列表中可直接查看对应请求的目标IP、域名和完整请求内容
- 注意事项:如果应用开启了SSL Pinning,作为开发者可临时注释Pinning逻辑后打包测试,也可通过Frida、Xposed等hook框架绕过限制
2. 日志读取法(适用于有源码调试的场景)
- debug包默认会打印网络框架相关日志,直接打开Android Studio的Logcat面板,过滤应用包名后搜索
okhttp、Retrofit、url等关键词即可拿到完整请求地址,解析域名即可得到对应IP。也可以自行在网络请求拦截器中添加打印IP的逻辑,更直接获取结果 - 没有Android Studio也可以通过adb命令直接拉取日志:
adb logcat | grep 你的应用包名,非root设备只要开启USB调试即可操作
3. 系统连接状态查询法(无需额外配置抓包环境)
- 直接通过adb命令查询设备当前的所有网络连接:执行
adb shell netstat或者adb shell ss -tunlp,在输出结果中过滤目标应用的uid,就能看到该应用当前建立的所有TCP/UDP连接对应的远端IP地址 - 也可以在测试设备上安装本地网络监控应用,无需root权限即可直观查看所有运行中应用的网络连接目标IP
4. 反编译查配置法(适用于只有安装包没有源码的场景)
- 用Apktool反编译目标APK,全局搜索
http://、https://、常见域名后缀等关键词,服务器地址一般会存储在strings.xml、BuildConfig或者网络框架配置类中,拿到域名后ping即可解析到对应IP - 如果应用是硬编码写入服务器IP,直接就能搜索到明文IP内容
内容的提问来源于stack exchange,提问作者Andrew Duskin
相关产品推荐
相关产品推荐

