1

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

谢谢。

编辑:忘了提到我正在用c编码。

4

2 回答 2

4

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

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

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

于 2012-01-04T08:16:14.220 回答
0

您应该使用netstat -anpcp

于 2012-01-04T07:53:08.110 回答