2013-03-05 3 views
2

tcpdump 명령을 사용하여 일부 클라이언트 IP 주소를 추출하고 수집하려하지만 grep/sed/awk를 사용하여 첫 번째 메시지를 얻는 방법을 알 수 없습니다 출력의 IP 주소. 나는tcpdump (OpenBSD)에서 클라이언트 IP 주소를 추출하십시오.

# tcpdump -t -i vlan4 -n ip dst host 192.168.2 
tcpdump: listening on vlan4, link-type EN10MB 

tcpdump: WARNING: compensating for unaligned libpcap packets 

10.28.6.1.29447 > 192.168.2.62.22: P 3758838950:3758839034.. 

10.28.6.1.29447 > 192.168.2.62.22: P 84:136(52) ack 117.. 

10.28.6.1.29447 > 192.168.2.62.22: P 136:188(52) ack 233.. 

10.28.6.1.29447 > 192.168.2.62.22: . ack 349 win 251 (DF).. 

다음 실행하면 그냥 포트 번호없이 각 행의 첫 번째 IP 주소를받을 수 있도록합니다. 그래서 난 그냥 싶어 위의 출력 .....에서

10.28.6.1 

10.28.6.1 

10.28.6.1 

10.28.6.1 

감사

답변

0
perl -lane '$F[0]=~s/(.*)\..*/$1/g;print $F[0]' your_file 
1

이 절단 선 시도 : 데이터와

cut -f1-4 -d "." 

시험 :

kent$ echo "10.28.6.1.29447 > 192.168.2.62.22: P 3758838950:3758839034.. 

10.28.6.1.29447 > 192.168.2.62.22: P 84:136(52) ack 117.. 

10.28.6.1.29447 > 192.168.2.62.22: P 136:188(52) ack 233.. 

10.28.6.1.29447 > 192.168.2.62.22: . ack 349 win 251 (DF).."|cut -f1-4 -d "." 
10.28.6.1 

10.28.6.1 

10.28.6.1 

10.28.6.1 
+0

완벽하게 작동하는 훌륭합니다. 감사. – user2137455

관련 문제