ほとんどの Linux ディストリビューションでは、/proc/net/tcp を読み取ることですべての tcp 接続を一覧表示できましたが、これは Solaris には存在しません。Solaris 11 で tcp 接続を読み取ることができるファイルはありますか?
ありがとう。
編集:私はcでコーディングしていることを忘れていました。
ほとんどの Linux ディストリビューションでは、/proc/net/tcp を読み取ることですべての tcp 接続を一覧表示できましたが、これは Solaris には存在しません。Solaris 11 で tcp 接続を読み取ることができるファイルはありますか?
ありがとう。
編集:私はcでコーディングしていることを忘れていました。
を書き換えようとしている場合はnetstat
、ソース コードを確認することをお勧めします: https://hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/cmd-inet/ usr.bin/netstat/netstat.c
重要な部分は、 STREAMS モジュールmibopen
を開いてそこ/dev/arp
にプッシュし、実際に接続情報を要求する です。コードは少し複雑なので、デバッガーでコードをステップ実行して、そのしくみを理解することをお勧めします。主なシステムコールは、、、、およびです。tcp
mibget
open
ioctl
putmsg
getmsg
プロセスが開いているソケットを確認したいだけの場合は、https : //hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/ptools//proc/PID/fd
のように調べることができます。 pfiles/pfiles.cpfiles
netstat -an
またはのいずれかを使用する必要がありますpcp