2012-01-04 57 views
1

在大多數Linux發行版上,我能夠通過讀取/ proc/net/tcp列出所有tcp連接,但solaris上不存在,是否有文件可以從Solaris 11讀取tcp連接?/proc/net/tcp Solaris 11下的替代

謝謝。

編輯:忘了提及我編碼在c。

+1

(在Linux上,你應該使用'SS -t'列出他們的procfs接口。只是因爲compat尖叫聲,但它已被卡在過去超過10年了。) – 2012-01-04 11:32:38

回答

0

您應該使用netstat -anpcp

+0

即時編寫我自己的代碼,對不起,如果我沒有指定在問題 – killercode 2012-01-04 07:55:06

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和推其上的tcp STREAMS模塊和實際請求連接信息的mibget。代碼有點複雜,所以我建議在調試器中單步執行代碼以瞭解它的工作原理。關鍵系統調用爲open,ioctl,putmsggetmsg

如果你只是想看看有什麼插座一個進程打開,您可以檢查/proc/PID/fd,如pfileshttps://hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/ptools/pfiles/pfiles.c

+0

我已經看過它,我只是無法弄清楚那裏發生了什麼或者它是如何工作的,它根本不像Linux那樣。 – killercode 2012-01-04 09:13:22

+0

你沒有確切地說你想要做什麼,但我更新了我的答案以包含更多細節。 – Gabe 2012-01-04 16:27:45