Solaris 11 下的 /proc/net/tcp 替代方案

发布于 2024-12-24 01:04:17 字数 146 浏览 4 评论 0原文

在大多数 Linux 发行版上,我能够通过读取 /proc/net/tcp 来列出所有 tcp 连接,但这在 Solaris 上不存在,是否有一个文件可以在 Solaris 11 上读取 tcp 连接?

谢谢。

编辑:忘记提及我正在用 c 编码。

On Most Linux Distributions, i was able to list all tcp connections by reading /proc/net/tcp, but this Doesn't exists on solaris, is there a file that i can read tcp connections from on Solaris 11?

thanks.

EDIT: forgot to mention that i'm coding in c.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

海之角 2024-12-31 01:04:17

如果您尝试重写 netstat,我建议查看它的源代码:https://hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/cmd-inet/usr.bin/netstat/netstat.c

重要的部分是 mibopen,它打开 /dev/arp 并将 tcp STREAMS 模块推送到其上,以及 mibget 实际请求的连接信息。该代码有点复杂,因此我建议在调试器中单步执行代码以了解其工作原理。关键的系统调用是 openioctlputmsggetmsg

如果您只想查看进程打开了哪些套接字,您可以检查 /proc/PID/fd,如 pfiles 中所示:https://hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/ptools/pfiles/pfiles.c

If you're trying to rewrite netstat, I suggest looking at the source code for it: https://hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/cmd-inet/usr.bin/netstat/netstat.c

The important parts are mibopen, which opens /dev/arp and pushes the tcp STREAMS module onto it, and mibget which actually requests the connection information. The code is a bit complicated, so I suggest stepping through the code in a debugger to understand how it works. The key syscalls are open, ioctl, putmsg, and getmsg.

If you just want to see what sockets a process has open, you can inspect /proc/PID/fd, as in pfiles: https://hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/ptools/pfiles/pfiles.c

暮年 2024-12-31 01:04:17

您应该使用 netstat -anpcp

You should either use netstat -an or pcp

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文