写一个脚本或命令 运行在linux系统centos 7下,目的是抓取访问接口ens192的包,获取协议类型为HTTP的访问80端口的真实IP,也就是请求头里的X-Real-IP的值,每10秒写到当前目录下realIP.txt里一次
时间: 2024-03-15 12:47:12 浏览: 65
Linux(centOS 7)系统下安装Java运行环境jdk
5星 · 资源好评率100%
您可以使用tcpdump和awk命令来实现该需求,以下是一个可能的脚本:
```bash
#!/bin/bash
INTERFACE="ens192"
OUTPUT_FILE="./realIP.txt"
tcpdump -i $INTERFACE -s 0 -l -w - 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' | awk '{
if ($0 ~ /X-Real-IP:/) {
match($0, /X-Real-IP: ([^\\r]+)/, arr);
print arr[1] > "'$OUTPUT_FILE'";
}
}' &
while true; do
sleep 10
done
```
这个脚本使用tcpdump命令捕获在ens192接口上访问80端口的HTTP流量,并使用awk命令提取请求头中的X-Real-IP值,并将其追加到realIP.txt文件中。脚本会在后台运行,并且每10秒钟会暂停一次,以便您可以随时停止它。请注意,您可能需要使用root权限来运行此脚本,因为tcpdump需要访问网络接口。
阅读全文