需求: 使用tcpcopy复制现网到测试机器,但是测试机器并不知道导入流量的OC机器IP是多少
查询tcpdump的参数,然而并没有参数可以直接提取源IP。于是采用了比较土的办法,按部就班的提取
tcpdump抓包过滤出源IP
tcpdump -i eth0 port 36524 -nn -c 5000 2>/dev/null | awk '{print $3}' | awk -F '.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | grep -v "`ifconfig | grep -A3 "eth0" | grep "inet" | awk '{print $2}'`"
网站看到一个好的脚本,可以不会使用perl啊,修改了下满足自己的需要,如下
高效过滤tcpdump输出取源IP
tcpdump -i eth0 -Nnn port 36524 2>/dev/null | perl -alne 'BEGIN{$| = 1};$ip = $1 if $F[2] =~ /([\d.]+)\.\d+/; print $ip unless $conn{$ip}++;'