Android:以编程方式确定打开 TCP 连接的应用程序列表

标签 android connection monitoring

我想知道我的 android 上的哪些应用程序连接到哪些 IP 地址。本质上,我想知道这些应用在未经我同意的情况下在后台做什么。

我在我的监控应用程序中尝试了一个 netstat 操作系统调用,它已经为我提供了打开的连接和连接的 IP 地址,但是没有进程名称、pid 或 uid 可以让我将连接映射到特定的应用程序。 'netstat -p' 似乎没有提供进程信息。

最佳答案

如果您阅读 'netstat' 的源代码,它实际上从/proc/net/tcp 中读取数据,其中包含 TCP 套接字表的转储,数据如下所示。

sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
 0: 0100007F:13AD 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 517 1 cbf19b40 300 0 0 2 -1

您会发现每个连接都有一个 uid,因为 Android 操作系统使用一个用户帐户运行每个应用程序,这意味着拥有一个唯一的 uid,这将有助于将每个连接映射到一个进程。

希望这些信息对您有所帮助。

关于Android:以编程方式确定打开 TCP 连接的应用程序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6632314/

相关文章:

android - 使用Android PhoneGap : Not able to create table in the database

java - 刷新 android Activity 并在同一 Activity 中显示更新的详细信息。当我按下更新按钮时

php - 数据库连接 "Sqlserver"丢失或无法创建

javascript - Mongo解析错误: Invalid connection string

c# - 用于 Linux 的 svn 监视器

javascript - 监控和调试 Angular 组件的性能

android - 无法在 Android 应用程序中继续下载

php - 电话可以用来传播本地主机的使用吗?

tomcat - 监控 catalina.out [多行日志文件]

android - 从其他类调用主函数