我想转储在特定端口(例如10301)上请求的唯一IP。我在下面使用了命令:
sudo tcpdump port 10301 -nn -q ip -l | awk '{ ip = gensub(/([0-9]+.[0-9]+.[0-9]+.[0-9]+)(.*)/,"\\1","g",$3); if(!d[ip]) { print ip; d[ip]=1; fflush(stdout) } }'
源自this链接。 但我收到此错误:
tcpdump: syntax error
在命令中没有port 10301
的输出:
5.22.96.170
100.116.219.232
100.123.221.113
172.17.108.177
100.120.83.187
100.123.95.221
答案 0 :(得分:1)
我很抱歉您混用了tcpdump
的选项和表达式,请检查man tcpdump
并尝试:
sudo tcpdump -nn -q -l ip and port 80 | awk '{ ip = gensub(/([0-9]+.[0-9]+.[0-9]+.[0-9]+)(.*)/,"\\1","g",$3); if(!d[ip]) { print ip; d[ip]=1; fflush(stdout) } }'