3

Linux で使用中のポートとその状態を取得するにはどうすればよいですか? 基本的に、netstatできることはすべてですが、Cでは?

4

2 に答える 2

3

netstat の実行時にstraceを実行すると、システム コールとその引数が表示されます。

$ strace netstat
...
open("/proc/net/tcp6", O_RDONLY)        = 3
open("/proc/net/udp", O_RDONLY)         = 3
...

多くの場合、これはプログラムが何を行っているか、またはプログラムが行う呼び出しを見つけるのに適した方法であり、man ページで検索する呼び出しを見つけることだけが必要な場合は、ソースを見るよりも簡単な場合があります。

于 2011-12-22T22:51:06.527 に答える
1

さて、「netstat でできることすべて」については、netstatそれ自体から始めることができます。ソースコードは次のとおりです。

http://net-tools.git.sourceforge.net/git/gitweb.cgi?p=net-tools/net-tools;a=blob;f=netstat.c;h=f046f09162689f258f8920c1c2af27e01cdc77f2;hb=HEAD

ほとんどの場合、ファイルシステムnetstatから取得することに注意してください。ルーチンには「興味深い」内臓のほとんどが含まれて/procいるようです。*_do_one

于 2011-12-22T22:43:17.057 に答える