我需要获取特定程序正在侦听的所有端口号。该程序本身是一个通用服务器类型的程序(让我们称其为myserverd)。可以将myserverd配置为侦听任何TCP端口,并且可以在一台机器上运行多个myserverd实例。
我可以通过在netstat -natp中对myserverd执行grep来获取正在运行的myserverd实例所使用的端口(使用p选项可以在netstat中显示程序名称)
我正在尝试在procfs (/proc/net/tcp)中查看此信息,但它没有显示任何进程名称……我的问题是:有没有一个好的/可靠的API可以用来以编程方式找出哪些进程正在侦听特定的端口(或将所有进程名称绑定到所有侦听端口)……?
发布于 2013-02-16 20:30:31
你可以在这里找到netstat的源代码:https://github.com/mirror/busybox/blob/master/networking/netstat.c。如果仔细查看,您应该会看到netstat是如何获得绑定进程的pids/名称的。
具体地说,看看prg_cache_load()函数,因为netstat无论如何都只是轮询/proc/net/tcp。
https://stackoverflow.com/questions/14909876
复制相似问题