使用libpcap获取数据包的uid

时间:2012-01-24 17:46:43

标签: c++ linux tcp libpcap

是否可以使用libpcap获取捕获的tcp数据包的有效uid?换句话说,我可以使用libpcap来获取创建所述数据包的用户ID吗?

2 个答案:

答案 0 :(得分:2)

不,UID信息 - 如果有任何开头 - 不会通过pcap使用的AF_PACKET通道传播。

答案 1 :(得分:1)

如果数据包是从另一台计算机发送的,则无法保证发送数据包的人具有用户ID - 例如,它可能由一个小的嵌入式操作系统发送没有用户ID的概念。

如果数据包是从您的计算机发送的,则libpcap本身不能告诉您发送者的用户ID。但是,如果您解析TCP数据包,则可以获取数据包的源IP地址和端口号,并且根据您运行的操作系统,您可能能够获得所有活动TCP连接的表。您的计算机,可能具有与之关联的进程ID或用户标识。 (但是,请注意,例如,在UN * X系统上,给定TCP连接的给定文件描述符可以由运行不同有效或真实用户ID的多个进程共享,在这种情况下,如果您拥有的只是使用libpcap捕获的传输数据包,您将没有足够的信息来确定发送数据包的进程的有效或真实用户ID,因为您不知道发送数据包的进程。)