如何从数据包获取uid - android

时间:2015-03-08 18:38:59

标签: android network-programming vpn packet

我正在android中开发防火墙应用程序,我需要根据uid识别应用程序。我创建了一个vpn服务,我能够捕获数据包并获取目标IP地址。

有没有办法从数据包或数据报套接字获取应用程序的uid。

2 个答案:

答案 0 :(得分:4)

解析数据包,对于TCP / UDP,您可以检索(local_ip,local_port,remote_ip,remote_port)元组。然后读取并解析/ proc / net / tcp或/ proc / net / udp,其中有uid字段。

这是一个环回套接字,其所有者uid为10117:

sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
7: 0100007F:8FC5 0100007F:0438 01 00000000:00000000 00:00000000 00000000 10117        0 242607 1 00000000 21 4 26 10 -1

答案 1 :(得分:0)

您必须为此编写一些本机代码才能在内核级别进行通信。