在大多數Linux發行版上,我能夠通過讀取/ proc/net/tcp列出所有tcp連接,但solaris上不存在,是否有文件可以從Solaris 11讀取tcp連接?/proc/net/tcp Solaris 11下的替代
謝謝。
編輯:忘了提及我編碼在c。
在大多數Linux發行版上,我能夠通過讀取/ proc/net/tcp列出所有tcp連接,但solaris上不存在,是否有文件可以從Solaris 11讀取tcp連接?/proc/net/tcp Solaris 11下的替代
謝謝。
編輯:忘了提及我編碼在c。
如果你想重寫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
,putmsg
和getmsg
。
如果你只是想看看有什麼插座一個進程打開,您可以檢查/proc/PID/fd
,如pfiles
:https://hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/ptools/pfiles/pfiles.c
我已經看過它,我只是無法弄清楚那裏發生了什麼或者它是如何工作的,它根本不像Linux那樣。 – killercode 2012-01-04 09:13:22
你沒有確切地說你想要做什麼,但我更新了我的答案以包含更多細節。 – Gabe 2012-01-04 16:27:45
(在Linux上,你應該使用'SS -t'列出他們的procfs接口。只是因爲compat尖叫聲,但它已被卡在過去超過10年了。) – 2012-01-04 11:32:38