Como encontrar o PID do processo que possui um pacote capturado com a libpcap em c?

0

Precisa encontrar o pid do processo que possui o pacote capturado.

Existe alguma maneira de fazer isso sem analisar muito tempo /proc/net/tcp e /proc/<PID>/fd/ ? Talvez, precise farejar pacotes de outra maneira? Eu tenho que encontrar o caminho mais rápido para correlacionar o pacote e seu processo mestre em C.

    
por marar 22.03.2017 / 11:41

1 resposta

2

Não acredito que exista outra forma, /proc/net/* e /proc/*/fd/ parecem ser o que lsof e netstat -p lêem. Ter um mapeamento exclusivo de soquetes (ou portas tcp) para processos também seria impossível, já que vários processos podem ter cópias do mesmo soquete. netstat -p parece mostrar apenas um deles, lsof , claro, lista todos. Além disso, como você está começando de um pacote, ele pode não ter um soquete de origem: ele pode vir de fora do sistema ou de um soquete bruto / de pacote

    
por 22.03.2017 / 12:59