如何获取其他进程的TCP / UDP套接字对的远程端口

时间:2013-10-24 11:20:48

标签: c++ linux sockets tcp process

在Linux上,假设我们有一些在机器上运行的进程的PID。是否有可能获得此进程所有套接字对的所有远程端口?怎么样?

我们可以通过解析执行netstat -anp | grep PID的输出来获取此进程拥有的端口,我可以通过getifaddrs()获取此机器的IP地址然后拖动部件来实现在xxx.xxx.xxx.xxx之后:但我无法知道与目标进程通信的其他端的IP地址。

1 个答案:

答案 0 :(得分:1)

<强> TCP 使用netstat -n显示远程地址和端口。

<强> UDP 请注意,上述内容不适用于UDP,因为UDP不具有“连接”的概念,因此不能具有远程地址和端口。相反,每个UDP消息都有一个源地址和端口,由目标进程中的单个套接字处理。我确定还有其他方法,但我个人使用wireshark来捕获UDP数据包。您可能已经意识到,在实际收到消息之前,您不会知道远程地址。