如何使用C检查本地计算机上的端口(如果需要通过IP或接口传递)也处于监听状态?我不想连接到这个端口进行检查,因为我不想激怒这个端口背后的服务。在linux上,如何在不尝试连接的情况下检查端口是否处于监听状态
我想用它来添加缺少的net.tcp.listen项目到Zabbix。
编辑 - 这是真正的答案:
正确的方法是阅读的插座表:
的/ proc /净/ TCP 的/ proc /净/ TCP6
它们包含线如:
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000:1F40 00000000:0000 0A 00000000:00000000 00:00000000 00000000 101 0 4083927 1 f5d15240 750 0 0 2 -1
1: 00000000:2742 00000000:0000 0A 00000000:00000000 00:00000000 00000000 1002 0 6100 1 decd76c0 750 0 0 2 -1
并且可以轻松解析侦听套接字(dst:00000000:0000)。 netstat上的strace显示netstat的工作方式相同。
2010-05-31
Daniel
+0
您应该发布问题的答案,然后接受它,而不是将其包含在问题中。 –
2015-05-26 16:35:36