Read it later.

Web製作に関するサーバ構成やコーディングネタの備忘録として使ってます。

*

GeoIPのインストール

   

IPアドレスから国や都市を取得するためのライブラリが、MaxMind社のGeoIP。
辞書データが無料のものもあるので、それを利用する。

1.GeoIPライブラリをインストール
MaxMind社のホームページ(http://www.maxmind.com/)から、GeoIPライブラリをダウンロードし、インストールします。

cd /usr/local/src
wget http://www.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
tar xzvf GeoIP.tar.gz
cd GeoIP-1.4.8
./configure
make
make install

2.GeoIPで使うデータを入手
無料で利用できる国データ、町データをダウンロード、解凍し、配置します。(有料版もあります。)

# 無料版のLiteシリーズのファイルをダウンロードして解凍する。
cd /usr/local/src/
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip /usr/local/src/GeoIP.dat.gz
gunzip /usr/local/src/GeoLiteCity.dat.gz

# ダウンロードしたファイルを/usr/local/share/GeoIP/に格納。
# ファイル名を変更していることに注意。
rm -rf /usr/local/share/GeoIP/GeoIP.dat
rm -rf /usr/local/share/GeoIP/GeoIPCity.dat
rm -rf /usr/local/share/GeoIP/GeoLiteCity.dat
cp GeoIP.dat /usr/local/share/GeoIP/
cp GeoLiteCity.dat /usr/local/share/GeoIP/
mv /usr/local/share/GeoIP/GeoLiteCity.dat /usr/local/share/GeoIP/GeoIPCity.dat

3.Peclモジュールのインストール、設定

pecl install geoip

無事インストールできたら、

vim /etc/php.ini

php.iniで、geoip.soを読み込むように設定。

; geoip
extension=geoip.so

設定を反映させるために再起動。

/etc/rc.d/init.d/httpd restart

geoipのライブラリのインタフェースはどういったものがあるかは【マニュアル】を参照。

4.最後に、PHPで動作検証。

<?php
//ホワイトハウス
var_dump(geoip_record_by_name('whitehouse.gov'));
//東京タワー
var_dump(geoip_record_by_name('www.tokyotower.co.jp'));
//訪問者がどこから来たか
var_dump(geoip_record_by_name($_SERVER['REMOTE_ADDR']));
?> 

 - CentOS, PHP

Comment

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

  関連記事

centos
[Linux]複数ファイルの文字コードを一括で調べる – nkf

開発をしていると、たまに文字コードが異なる状態で保存されたりする。 UTF-8の …

centos
ログイン履歴の確認

ログイン履歴の照会をするには、「last」コマンドを用いる。 ログイン日時の降順 …

centos
リッスン状態にあるポートについて調査する。

下記は、出力結果のサンプル。

centos
CentOS系コマンド覚書

※自分がよく使うもので忘れやすいものを書いてるだけなので、これといってすごいもの …

centos
apacheを使ったWebサーバ経由でのファイルのダウンロードが非常に遅い場合の対処

http経由でのファイルのダウンロード、しかも静的ファイル。こんなに遅かったっけ …

php
headers_list

リダイレクトやNot Found処理をする時に、header()を使用しHTTP …

php
Smarty2からSmarty3へのアップグレードガイド

Smarty2を以前から愛用していたのだけど、Smarty3にそろそろ移行しよう …

php
マルチバイト文字列を1文字づつ分解して配列化する – preg_split

便利な標準関数があったので、サンプルを。 マルチバイト文字列を1文字づつ分解し配 …

php
$_SERVER[“REQUEST_TIME_FLOAT”]

$_SERVER[“REQUEST_TIME”]には置き …

centos
シンボリックリンクの作成

やっと、本日勘違いしていたことに気づきました(汗 思い込みはあかんねー。 ※[シ …