내 서버에 연결된 IP 수를 확인하려면 다음 명령을 사용합니다.
sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
두 번째 열에는 고유 IP와 이 IP가 Nginx를 요청한 횟수를 표시합니다. 예:
23 123.45.6.8
3 34.56.78.4
1 8.9.4.3
이 IP의 현지화를 다루는 세 번째 열을 원합니다. 이를 위해 나는 geoiplookup
.
출력 예:
23 123.45.6.8 Netherlands
3 34.56.78.4 England
1 8.9.4.3 Netherlands
출력 예 geoiplookup
:
GeoIP Country Edition: US, United States
#or
GeoIP Country Edition: FR, France
따라서 ","로 나누는 것으로 충분합니다.
이전 출력을 세 번째 열의 현지화로 변환하는 방법하나철사?
답변1
sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | awk '{"geoiplookup "$2" | egrep -o Country.*[A-Z]{2}" | getline line; split(line,a," "); print $1, a[3], $2}'