GeoIP

提供: FreeBSD入門
移動: 案内検索
スポンサーリンク

GeoIP とは IPアドレスホスト名 から、どこの国に属するのか調べるためのツールとライブラリを提供します。 IPアドレス から簡単に国判別ができます。

読み方

GeoIP
じお あいぴー

概要

GeoIPは、ホスト名やIPアドレスを元に、どこの国のアドレスであるか、調べることができます。通信相手がどこの国に属しているか簡単に調べることができます。

GeoIP を使うシーンをいくつか挙げてみます。

  • 国内からのアクセスに限定したい
  • ウェブサイトのアクセス解析で、国ごとのアクセスを調べたい
  • ハニーポットに遊びにきたソースアドレスの国が調べたい

GeoIP は、いろいろなプログラミング言語から利用できます。

GeoIP のパッケージには、実際のデータファイルが含まれないため、別途ダウンロードが必要です。

インストール

pkgコマンドでインストールする場合

sudo pkg install GeoIP

設定

国を判別するためのデータをダウンロードする必要があります。

# sudo /usr/local/bin/geoipupdate.sh

以下は実行例です。

$ sudo /usr/local/bin/geoipupdate.sh
パスワード:
Fetching GeoIP.dat and GeoIPv6.dat...
/usr/local/share/GeoIP/GeoIPupdate.XxIHDw/GeoI100% of  459 kB 2308 kBps 00m00s
/usr/local/share/GeoIP/GeoIPupdate.1PQYw6/GeoI100% of  741 kB 2524 kBps 00m01s

crontab で更新を自動化する

geoipupdate.sh を毎日自動実行すると簡単です。実行した情報は、messages に落ちます。

0     6       *       *       *       root    /usr/local/bin/geoipupdate.sh 2>&1 | logger -t GeoIP

コマンドライン引数

$ geoiplookup -h
Usage: geoiplookup [-h] [-?] [-d custom_dir] [-f custom_file] [-v] [-i] [-l] <ipaddress|hostname>

使い方

FQDNで引いた例です。

$ geoiplookup yahoo.co.jp
GeoIP Country Edition: JP, Japan
$ geoiplookup google.com
GeoIP Country Edition: US, United States
$ geoiplookup baidu.com
GeoIP Country Edition: CN, China

プライベートアドレスなどでは、以下の結果になります。

$ geoiplookup 127.0.0.1
GeoIP Country Edition: IP Address not found
$ geoiplookup localhost
GeoIP Country Edition: IP Address not found
$ geoiplookup 192.168.0.0
GeoIP Country Edition: IP Address not found

0.0.0.0 だとこのようになります。

$ geoiplookup 0.0.0.0
GeoIP Country Edition: can't resolve hostname ( 0.0.0.0 )
GeoIP Country V6 Edition: can't resolve hostname ( 0.0.0.0 )

プログラミング言語からの利用

C, Go, Java, Perl, Python, PHP, Ruby など、様々な言語から利用できます。

GeoIP-1.6.6  
Find the country that any IP address or hostname originates from
ap24-mod_geoip2-1.2.10  
Apache module that provides the country code of the client IP
geoip-java-1.2.8_1  
Java bindings for GeoIP API
geoipupdate-2.2.1  
Fetch the latest copies of the paid GeoIP database
go-geoip-0.0.0.20131016  
Go library to wrap the libgeoip C library
p5-GeoIP2-2.002000  
Perl API for MaxMind GeoIP2 web services and databases
pear-Net_GeoIP-1.0.0.r1_1  
Library to perform geo-location lookups of IP addresses
pecl-geoip-1.1.0  
Map IP address to geographic places
proftpd-mod_geoip-1.3.5a  
GeoIP ProFTPD module
py27-GeoIP-1.3.2_1  
Mapping of IP addresses/hostnames to country names in Python
py27-GeoIP2-2.2.0  
MaxMind GeoIP2 Python API
py27-pygeoip-0.3.2  
Pure Python GeoIP API
rubygem-geoip-1.5.0  
Geoip implementation for rubygems
webalizer-geoip-2.23.8_3  
Web server log file analysis program

geoipupdate

MaxMind から geoipupdate (GeoIP Update) というパッケージが提供されています。

geoipupdate (geoIP Update) は、 GeoIP2GeoIP レガシーなバイナリデータベースを自動的にアップデートするためのプログラムです。

関連項目




スポンサーリンク