gpt4 book ai didi

c - 以编程方式或来自 procfs 的 netstat 进程名称信息

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:27 28 4
gpt4 key购买 nike

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

我可以通过 grepnetstat -natp< 中为 myserverd 获取正在运行的 myserverd 实例所使用的端口(p 选项,用于在 netstat 中显示程序名称)

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

最佳答案

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

具体来说,请查看 prg_cache_load() 函数,因为 netstat 只是轮询 /proc/net/tcp

关于c - 以编程方式或来自 procfs 的 netstat 进程名称信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14909876/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com