需求: 使用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}++;'