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

Ric*_*ick 3 connection monitoring android

我想知道我的android上的哪些应用程序连接到什么IP地址.从本质上讲,我想知道这些应用程序在未经我同意的情况下在后台执行的操作.

我想在我的监视应用程序,这已经让我打开的连接和连接的IP地址的netstat的操作系统调用,但没有进程名称,PID或UID,让我来映射到特定应用程序的连接.'netstat -p'似乎没有提供进程信息.

小智 8

如果您读取'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
Run Code Online (Sandbox Code Playgroud)

你会发现每个连接都有一个uid,因为Android OS使用一个用户帐户运行每个应用程序,这意味着拥有一个唯一的uid,它将有助于将每个连接映射到一个进程.

我希望这些信息会有所帮助.