Linux
在 auth.log 中對 IP 地址進行地理定位的腳本
有沒有辦法在 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 模組文件(並且您可能需要安裝不同的數據庫)。