- ベストアンサー
IPアドレスによる振り分け
- PHPのPEARのNet_GeoIPを使用して、IPアドレスによりページを振り分けるソースを書いています。
- 特定のページへは九州地区からのアクセスのみ振り分けたいですが、MaxMindのサイトからダウンロードしたデータベースを使用してうまく動作しません。
- PHPのモジュールを利用して都市名までの情報を取得しようとしていますが、うまくいきません。どうすればいいでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
確かカバー率悪かったと聞いていたので、自宅のIPを geoiplookup コマンドで試してみましたところ都市名は表示されませんでした。 % geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat xxx.xxx.xxx.xxx GeoIP City Edition, Rev 1: JP, N/A, N/A, N/A, 36.000000, 138.000000, 0 東経と北緯もデフォルト値のようです。 ただ、幾つか試してみると表示されるものもありますが、都内のはずが栃木県だったりと アテにならない様です。 参照URLにカバー率っぽく書かれてますが 25 mile って 40Km 誤差は日本だとけっこうでかいですね。 僕は国判定にしか使ってませんです。 なので、回答としては 「データファイル GeoLiteCity.dat にあれば表示されますが、無いものは出ません。」 となるのかな。 もし確実にデータにあることが判明しているが、出ないのであればプログラム側の問題ですね。 (見た感じ var_dump( $record ) すればわかりそうなので大丈夫そうですが)
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
同ライブラリをつかってないのでなんとも言えないですが 文法や関数の使い方が正しいのであれば フリー版は地域データベースをもっていないようですし もし非フリー版を利用ならメンテナンスが不十分で正しい都市を 返してくれない可能性もあります。 ぐぐったところこちらがヒットしましたがどうでしょう?
お礼
回答ありがとうございます。 返信が遅くなり申し訳ありません。 参考URLも確認しました。 こちらのとおりにやってみたけど、やはり同じ結果でした。 フリー版ということで地域データを持ってないということですね。 ありがとうございました。
お礼
回答ありがとうございます。 返礼書くのが遅くなりすみません。 細かく書いていただいてありがとうございます。 データファイルにないため表示されないということですね。 ありがとうございます。