나는 허니팟을 설정하고 수많은 무차별 대입 공격의 소스를 분석하고 싶었습니다. 모든 IP 주소를 추출하여 목록 형식으로 다른 파일에 추가하고 싶습니다. 그러면 스크립트는 cron 작업의 일부가 되고 목록 파일 맨 아래에 고유 IP를 추가합니다.
로그 파일에서 IP 주소를 추출하여 다른 파일에 나열하려면 어떻게 해야 합니까?
답변1
가장 쉬운 방법은 아마도 간단한 grep일 것입니다.
grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" /path/to/sourcefile > output.txt
그러면 소스 파일에서 모든 IP 주소가 추출되어 개행 문자로 구분되어 출력.txt에 기록됩니다.
답변2
나는 다음과 같은 것을 사용할 것입니다 :
perl -MRegexp::Common -wnE 'say for /$RE{net}{IPv4}/g' log-file > another-file
Regexp::Common
운영 체제에 Perl 모듈이 제공되지 않는 경우 Perl 모듈을 설치해야 합니다. 이 -n
스위치를 사용하면 입력 파일을 한 줄씩 반복한 다음 각 IP 주소를 반복하여 각 IP 주소를 별도의 줄에 인쇄합니다. 모듈 Regexp::Common
은 IP 주소와 일치하는 패턴을 갖게 되며, 이는 $RE{net}{IPv4}
.
답변3
나는 awk를 사용하여 IP 주소를 "i"라는 연관 배열에 넣고 일치 항목을 인덱스로 사용했습니다. 그런 다음 색인을 인쇄하여 중복 데이터를 제거합니다.
awk 'match($0, /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) {i[substr($0,RSTART,RLENGTH)]=1}END{for(ip in i){printf("%s\n", ip)}}' sourcefile