在 Linux 计算机上获取所有连接的 IP
Get all connected IP´s on the Linux machine
最近我在一次采访中被问到一个我不能回答的问题。有人能解决这个问题吗?
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
谢谢!!
逻辑:
使用netstat -natp
(通过awk
/sed
进行过滤以获得端口,然后对其进行grep)然后使用一个简单的测试来查看结果是否为空。运行curl
(如果是)。
把这个放在cron作业中。真的很简单。
编辑:
netstat
是一个实用程序,它将向您显示计算机上的所有连接。netstat -natp
显示了在您的计算机上具有tcp套接字的程序的列表。
CCD_ 7和CCD_。您可以使用它们来列出特定列。
grep
搜索输入以找到指定的字符串。
bash允许基本逻辑,并且可以用来查看字符串是否为空。
cron
是一个linux进程,它调度在特定时间运行的命令。
编辑#2:
您可以轮询/proc/net/tcp
,但既然netstat
可以做到这一点并很好地格式化它,为什么还要麻烦呢?
在Linux中,您可以在/proc/net
中查找文件并对其进行解析。
例如,TCP连接列在/proc/net/tcp
中
head /proc/net/tcp
将显示类似于此的内容
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000:0007 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 38148735 1 0000000000000000 100 0 0 10 -1
1: 00000000:1F48 00000000:0000 0A 00000000:00000000 00:00000000 00000000 116 0 38923158 1 0000000000000000 100 0 0 10 -1
2: 00000000:0CEA 00000000:0000 0A 00000000:00000000 00:00000000 00000000 120 0 12364094 1 0000000000000000 100 0 0 10 -1
3: 0100007F:13AD 00000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 26454267 1 0000000000000000 100 0 0 10 -1
4: 0100007F:008F 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 5570 1 0000000000000000 100 0 0 10 -1
5: 00000000:0050 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 27328173 1 0000000000000000 100 0 0 10 -1
6: 0100007F:1913 00000000:0000 0A 00000000:00000000 00:00000000 00000000 116 0 38923868 1 0000000000000000 100 0 0 10 -1
7: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 18983193 1 0000000000000000 100 0 0 10 -1
8: 0100007F:0277 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 38681424 1 0000000000000000 100 0 0 10 -1
然后,您可以拆分线路,查找打开的连接并采取相应的行动。查看netstat
的来源了解更多信息。
相关文章:
- 为什么 WinInet 在通过 FQDN 连接时无法通过协商自动进行身份验证,但如果通过 IP 连接则成功?
- C++ Winsock2 客户端未通过远程 IP 连接到服务器
- 使用 IP 帮助程序的 Windows 中活动 UDP 连接的远程地址
- 如何将请求的客户端连接的 IP 与 QTcpSocket 类中识别的 IP 之一进行比较?
- gRPC C++尝试在无法访问的 IP 上连接通道时阻止客户端
- TCP/IP 客户端是否可以连接到无法访问的 IP
- 服务器和客户端都在PC上运行.客户端可以使用PC的IP连接到服务器
- 如何从活动的 udp 连接获取远程 IP 地址和端口
- 使用静态IP地址时,ESP32 httpclient连接拒绝了
- 如何获取其他人可以使用的IP来连接到我的c 中的套接字构建
- 如何在我当前连接的网络中获取本地 IP 地址?
- 获取传入连接的源 IP 地址
- 唯一标识UDP连接-来自同一IP的多个连接
- c++winsock客户端无法使用主机IP的文本框进行连接
- 套接字连接到不存在的ip地址上的端口
- 为什么我无法在 C++ 中键入要连接的 IP
- 提升连接后从TCP服务器访问TCP客户端IP地址+端口
- 连接到外部 IP 失败
- 如何在接受C++中的连接之前获取客户端 IP 地址
- 在接受连接C++之前获取套接字的 IP 地址