获取使用过的端口和状态

时间:2011-12-22 22:36:17

标签: c linux network-programming port netstat

如何在Linux上使用已使用的端口及其状态?基本上,netstat可以做的所有事情,但在C?

2 个答案:

答案 0 :(得分:3)

在一系列netstat上运行strace将显示它所进行的系统调用及其参数。

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

这通常是查找程序正在执行的操作或进行的调用的好方法,如果您只需查找要在手册页上查找的调用,有时可能比查看源代码更容易。

答案 1 :(得分: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例程占据了大部分“有趣”的内容。

相关问题