가장 많은 요청을 하는 상위 10개 IP와 Apache 로그 파일에서 발생한 요청 수가 있습니다. 요청을 처리하기 위해 다음 명령을 사용합니다.
cat access_log|cut -d' ' -f1|uniq -c|sort -r|head -n 10
동일한 작업을 수행해야 하지만 이 IP 주소의 소유자도 찾아야 합니다.
답변1
명령을 확장하여 정보를 기반으로 whois
IP 주소를 찾을 수 있습니다.
cat access_log|cut -d' ' -f1|uniq -c|sort -r|head -n 10|while read COUNT IP; do whois $IP; done;
답변2
IP 주소의 소유자를 찾으려면 whois 및 geoiplookup 명령을 사용할 수 있습니다. Whois는 조직 정보를 제공하며 geoiplookup은 모든 IP 주소를 국가 및 대략적인 지리적 위치로 변환합니다.
이러한 명령은 다음과 같이 사용됩니다.
$geoiplookup 183.53.45.4
GeoIP Country Edition: CN, China
GeoIP City Edition, Rev 1: CN, N/A, N/A, N/A, N/A, 35.000000, 105.000000, 0, 0
$whois 183.53.45.4
% [whois.apnic.net]
% Whois data copyright terms
http://www.apnic.net/db/dbcopyright.html
% Information related to '183.0.0.0 - 183.63.255.255'
inetnum: 183.0.0.0 - 183.63.255.255
netname: CHINANET-GD
descr: CHINANET Guangdong province network
descr: Data Communication Division
descr: China Telecom
country: CN
일반적으로 특정 문제를 조사할 때 요청이 가장 많은 국가와 실제 조직만 아는 것이 더 유용하다고 생각합니다.
귀하의 명령을 다음과 같이 변경하겠습니다.
for i in `cat access_log|cut -d' ' -f1|uniq -c|sort -r|head -n 10`
do
geoiplookup $i | head -1 | awk ' { print $4 } '
done
Debian에 필요한 명령을 설치하려면 다음을 수행하십시오.
sudo apt-get install geoip-bin whois