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ランキング
-
mySQLのデータを多次元配列に格...
-
Smartyのテンプレート内で、連...
-
SQLインジェンクション対策法を...
-
phpからmysqlにデータ保存(テ...
-
PHP FTPサーバへの画像アップロ...
-
ログイン パスワード変更のプ...
-
IPアドレスによる振り分け
-
csvファイルチェック
-
php の処理をした結果をカウン...
-
$_REQUEST とphpファイルでphp?...
-
テキストボックスの値を取得したい
-
サブフォルダ内の全てのテキス...
-
VBA で、スペースを含むファイ...
-
PHPの関数実行
-
laravelを利用してコントロール...
-
PHPでURLにジャンプするには?
-
プログラミング言語で、使える...
-
入力フォーム→確認画面→送信画...
-
検索時の選択内容を保持する方法
-
アマゾンのような評価の星を選...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA で、スペースを含むファイ...
-
Flaskでサーバー立ち上げに関して
-
POSTの項目に追加
-
ファイル名を変更してアップロ...
-
PHPで入力フォームでデータを確...
-
PHP MySql 画像を取得
-
foreachがうまく動かない
-
PHPからHTMLへの変数の受け...
-
phpで変数を使ってcopyできない
-
サブフォルダ内の全てのテキス...
-
UPDATEできない
-
php+mysqlでの重複チェックにつ...
-
phpでショッピングカート機能を...
-
fputcsv()で1レコード1行になる...
-
配列の値
-
openCVのトラックバーについて
-
if文のなかで
-
sqlite文字列を格納、出力
-
$a = ( $b == $c ) ? $d、 この...
-
$_REQUESTの意味を教えて下さい
おすすめ情報