Linux

在 auth.log 中對 IP 地址進行地理定位的腳本

  • October 11, 2018

有沒有辦法在 Ubuntu linux 上自動地理定位 IP 地址?我希望針對我的 auth.log 中的錯誤執行此操作。

Ubuntu PreReqs:

sudo apt-get install libgeoip1 libgeo-ip-perl libregexp-common-perl

我為您編寫的腳本:

#Parses out ip and prints ip followed by country
use strict;
use warnings;

use Regexp::Common qw /net/;
use Geo::IP;

my $gi = Geo::IP->new(GEOIP_STANDARD);

while (<>) {
   #Following matches IPv4 addresses and stores the result in $1
   #The way this is now, it will only do the first IP on each line
   if (/($RE{net}{IPv4})/g) {
       print $1 . ':' . $gi->country_code_by_addr($1);
   }
}

輸入輸出:

65.19.146.2
65.19.146.2:US
65.19.146.2
220.248.0.0:CN

該腳本只是循環其輸入,因此如果該腳本名為 foo.pl 並且是可執行的,您可以執行類似cat access.log | foo.pl. 如果您想要更準確的詳細資訊,請參閱Geo::IP perl 模組文件(並且您可能需要安裝不同的數據庫)。

引用自:https://serverfault.com/questions/86737