从 apache 日志文件查找 IP 所有者

从 apache 日志文件查找 IP 所有者

我有发出最多请求的前 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

相关内容