最近我在面试中被问到一个我不会做的问题。有人能解决这个问题吗?
Grab all connected IP´s on the Linux machine
check every connected IP if TCP port 1706 is open
if its open > execute command. CURL ‘http:// some address ’
Else do nothing.
program will check this every 60 minits
Plattform Linux Ubuntu Server 12. X64 / x32
C++ 中的 WAP
谢谢!!
最佳答案
制作一个 bash 脚本。
逻辑:
使用netstat -natp
(通过awk
/sed
过滤以获取端口,然后grep它)然后使用一个简单的测试来查看结果是否为空。如果是的话,请运行 curl
。
将其放入 cron 作业中。真的很简单。
编辑:
netstat
是一个实用程序,它将显示计算机上的所有连接。 netstat -natp
显示计算机上具有 TCP 套接字的程序列表。
sed
和 awk
用于文本格式化。您可以使用它们列出特定列。
grep
搜索输入以查找指定的字符串。
bash 允许基本逻辑,可用于查看字符串是否为空。
cron
是一个 Linux 进程,它安排命令在特定时间运行。
编辑#2:
你可以轮询/proc/net/tcp
,但是既然netstat
可以做到这一点并且很好地格式化它,为什么还要麻烦呢?
关于c++ - 获取 Linux 机器上所有连接的 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14910700/