1

我需要获取特定程序正在侦听的所有端口号。该程序本身是一个通用的服务器类型程序(让我们称之为myserverd)。可以配置为侦听任何 TCP 端口,并且可以在一台机器上运行myserverd多个实例。myserverd

myserverd我可以通过grep'ing for myserverdin netstat -natp(p显示程序名称的选项netstat) 运行实例来获取正在使用的端口

我试图在 procfs ( /proc/net/tcp) 中查看此信息,但它没有显示任何进程名称...我的问题是:是否有一个好的/可靠的 API 可用于以编程方式确定哪些进程正在侦听特定端口(或将所有进程名称绑定到所有侦听端口)...?

4

1 回答 1

0

您可以在此处找到 netstat 的源代码:https ://github.com/mirror/busybox/blob/master/networking/netstat.c 。如果您仔细查看,您应该会看到 netstat 如何获取绑定进程的 pids/名称。

具体来说,看一下prg_cache_load()函数,netstat就像民意调查一样/proc/net/tcp

于 2013-02-16T12:30:31.483 回答