2008年07月18日
IPアドレスから位置情報を取得したい
GeoIP City Geolocationを使うとIPアドレスから位置情報を取得可能。
無料版と有料版があり、無料版は位置情報の精度が低い。
今回は無料版で実験。
環境構築
必要なパッケージをインストール
$ sudo apt-get install libgeoip1 libgeoip-devGeo::IPをダウンロードしてdebパッケージ化
※etchでは1.33のbuildに失敗したので1.27を採用。
$ wget http://www.maxmind.com/download/geoip/api/perl/Geo-IP-1.27.tar.gz $ tar zxvf Geo-IP-1.27.tar.gz $ dh-make-perl --build Geo-IP-1.27 $ sudo dpkg -i libgeo-ip-perl_1.27-1_i386.debGeoLiteCity.datをダウンロード
$ wget http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz $ gunzip GeoLiteCity.dat.gzサンプルプログラム
#!/usr/bin/perl
use strict;
use warnings;
use Geo::IP;
my $name = shift;
my $geo = Geo::IP->open('./GeoLiteCity.dat', GEOIP_STANDARD);
my $geoip = $geo->record_by_name($name);
exit 1 unless $geoip;
map { print $_ .":\t". $geoip->$_ ."\n" }
qw/country_code country_name city region postal_code
latitude longitude dma_code area_code/;
1;
実行例$ ./geoip-lookup.pl www.google.com country_code: US country_name: United States city: Mountain View region: CA postal_code: 94043 latitude: 37.4192 longitude: -122.0574 dma_code: 807 area_code: 650
位置情報を取得した後、どうする?
Google Maps APIで位置情報を指定して地図を表示する。
これをやりたかった。
Google Maps Hacks 第2版 ―地図検索サービスをもっと活用するテクニック
posted with amazlet at 08.07.18
Rich Gibson Schuyler Erle
オライリー・ジャパン
売り上げランキング: 53996
オライリー・ジャパン
売り上げランキング: 53996
