Você pode estender seu comando para pesquisar os endereços IP em relação a whois
information:
cat access_log|cut -d' ' -f1|uniq -c|sort -r|head -n 10|while read COUNT IP; do whois $IP; done;
Eu tenho os 10 principais IPs que fazem o maior número de solicitações e o número de solicitações feitas a partir do exemplo do arquivo de log do Apache. Eu usei esse comando bash para manipular uma solicitação:
cat access_log|cut -d' ' -f1|uniq -c|sort -r|head -n 10
Mas preciso fazer o mesmo, mas encontrar os proprietários desses endereços IP.
Você pode estender seu comando para pesquisar os endereços IP em relação a whois
information:
cat access_log|cut -d' ' -f1|uniq -c|sort -r|head -n 10|while read COUNT IP; do whois $IP; done;
Para encontrar os proprietários de endereços IP, você tem os comandos whois e geoiplookup. Whois dá a você a organização, geoiplookup traduz qualquer endereço IP para o país e localização geográfica aproximada.
Esses comandos são usados como:
$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
Geralmente, acho mais útil conhecer o país quando estiver no topo das solicitações e a organização real apenas se estiver investigando um problema específico.
Eu mudaria seu comando como:
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
Para instalar os comandos necessários no Debian faça:
sudo apt-get install geoip-bin whois
Tags command-line ip logs apache-httpd