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
シンボリックリンクの作成

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

centos
qmailの転送設定

正確にはvpopmail用の設定らしい。 ○○○-△△△@hogehoge.co …

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

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

centos
[CentOS]yumが失敗する(db3 エラー) – Thread died in Berkeley DB library

yumが実行できなくなった! yumコマンドがうまく動かない環境に遭遇した。 解 …

php
$_REQUEST($_POST)に全てのアイテムが格納されない – max_input_vars

フォームに大量のINPUTタグを配置している場合に、 部分的には取れるけど、PO …

centos
メモリ搭載量などを調べる

メモリ搭載量などを調べる 下記は出力例。#以降は、項目説明。 また、メモリに関し …

centos
ログイン履歴の確認

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

centos
ext2でのサブディレクトリの配置上限数

やってきたメールをローカルに、サブディレクトリを作成して保存していたら、どう考え …

centos
root宛メールを転送

logwatchなど、root宛にやってきたメールを指定のメルアドに転送するには …

php
[Smarty]確認画面などで使う、Hidden項目を全力で自動生成

入力確認画面や完了通知画面で、前画面(入力画面)のリクエストを元に一気にHidd …