c++ - 获取 Linux 机器上所有连接的 IP

标签 c++ linux ip-address tcp-port

最近我在面试中被问到一个我不会做的问题。有人能解决这个问题吗?

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 套接字的程序列表。

sedawk 用于文本格式化。您可以使用它们列出特定列。

grep 搜索输入以查找指定的字符串。

bash 允许基本逻辑,可用于查看字符串是否为空。

cron 是一个 Linux 进程,它安排命令在特定时间运行。

编辑#2:

你可以轮询/proc/net/tcp,但是既然netstat可以做到这一点并且很好地格式化它,为什么还要麻烦呢?

关于c++ - 获取 Linux 机器上所有连接的 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14910700/

相关文章:

c++ - c++语言/getdate()中如何定义一个表示时间值的值?

c++ - 最短路径加权矩阵

linux - 如何以 root 用户身份在命令行中通过 RTSP 使用 VLC 流式传输视频?

c - 如何给动态安装打印机端口root权限?

c++ - 如何在 Linux 上执行适用于 x86、arm、GCC 和 icc 的原子操作?

java - ServletRequest.getRemoteAddr()返回的IP格式是什么

在 C 中将 IP 地址字符串转换为整数

c++ - 是否可以在不构造的情况下将 std::bind 的返回值实际转换为 std::function?

c++ - 在两个客户端套接字之间发送数据

ruby-on-rails - 如何从IP地址中找出用户所在的国家和城市?