php、PEARのNet_GeoIPの使用して
IPアドレスによりページを振り分けるソースを書いています。
やりたいことは、
「九州地区からのアクセスのみ特定のページへ振り分ける。」
です。
MaxMindのサイトから、無料のデータベースをダウンロードして
使用しているのですが、うまく動作しません。
MaxMind に用意されているPHP用のモジュールを利用して
以下のようにソースを書いています。
========
include("./geoipcity.inc");
include("./geoipregionvars.php");
$city_name = "";
$region_name = "";
$gi = geoip_open(MY_DIR."*****/GeoLiteCity.dat",GEOIP_STANDARD);
$record = geoip_record_by_addr($gi,$str_valip);
$region_name = $record->region;
$city_name = $record->city;
geoip_close($gi);
========
都市名までの情報が得られるはずなのですが
うまくいきません。
どうすればいいのでしょうか。
No.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 ) すればわかりそうなので大丈夫そうですが)
参考URL:http://www.maxmind.com/app/geolite_city_accuracy
回答ありがとうございます。
返礼書くのが遅くなりすみません。
細かく書いていただいてありがとうございます。
データファイルにないため表示されないということですね。
ありがとうございます。
No.1
- 回答日時:
同ライブラリをつかってないのでなんとも言えないですが
文法や関数の使い方が正しいのであれば
フリー版は地域データベースをもっていないようですし
もし非フリー版を利用ならメンテナンスが不十分で正しい都市を
返してくれない可能性もあります。
ぐぐったところこちらがヒットしましたがどうでしょう?
参考URL:http://metaboy.blog23.fc2.com/blog-entry-788.html
回答ありがとうございます。
返信が遅くなり申し訳ありません。
参考URLも確認しました。
こちらのとおりにやってみたけど、やはり同じ結果でした。
フリー版ということで地域データを持ってないということですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- その他(インターネット接続・インフラ) アプリ利用者を特定し、裁判に 2 2022/06/09 21:43
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpで変数を使ってcopyできない
-
VBA で、スペースを含むファイ...
-
テキストエリアに入力された文...
-
ファイル名を変更してアップロ...
-
PHP で動的ファイル出力
-
PHPからHTMLへの変数の受け...
-
PHP ボタンが押されたら処理を...
-
フォーム送信後の更新ボタンで...
-
laravelを利用してコントロール...
-
1つのphpファイルで、入力フォ...
-
チェックボックスを使った複数...
-
テキストリンクをPOST送信したい
-
セッションを使わずに遷移先画...
-
CGI Perlでの認証について
-
複数行のデータ一括更新に関して
-
PHP で画面の一部だけを変えたい。
-
GETとPOST以外のデータの渡し方...
-
phpでのセレクトボックスの値を...
-
php セレクトボックス 値取得
-
ボタンをクリックでPHP文を実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA で、スペースを含むファイ...
-
ファイル名を変更してアップロ...
-
アップロードファイル名の文字化け
-
PHPからHTMLへの変数の受け...
-
プログラミングC++のmapについて
-
phpで変数を使ってcopyできない
-
Flaskでサーバー立ち上げに関して
-
SQLインジェンクション対策法を...
-
POSTの項目に追加
-
パラメータを2個つけたい
-
サブフォルダ内の全てのテキス...
-
フォームで送られてきたメール...
-
PHP FTPサーバへの画像アップロ...
-
連想配列を複数条件で比較して...
-
name属性が全角の場合・・・
-
if function PHP
-
マクロ(VBA)について
-
PDOのprepareでLIKEの部分一致...
-
画像をDBに登録できない
-
テキストボックスの値を取得したい
おすすめ情報