グーグルした後、私はうまくいかないか、ユーザーからの許可を必要としないように見える多くの解決策を見つけました。
使いやすく、PHPまたはJavascriptであり、ユーザーの許可を必要としないものを探しています。最も正確である必要はありません。
グーグルした後、私はうまくいかないか、ユーザーからの許可を必要としないように見える多くの解決策を見つけました。
使いやすく、PHPまたはJavascriptであり、ユーザーの許可を必要としないものを探しています。最も正確である必要はありません。
Google Analyticsはこれに最適です(javascript)。
編集:Google Analyticsには、プログラムで何かを行う必要がある場合に、市/国の情報とすべてのレポート情報を取得するAPIがあることを指摘しておく必要があります-http://code.google.com/apis/analytics/docs/
しかし、それが選択肢ではない場合:
PHPのユーザーIPを取得できます$_SERVER['REMOTE_ADDR']
これで、PHPのGeoIPライブラリを使用してジオロケートできます:http://php.net/manual/en/book.geoip.php
これは私が使用しているものです(IPを取得$_SERVER['REMOTE_ADDR']して関数に渡すことができます):
function GeoData($ip)
{
$Content = CurlGet("http://api.hostip.info/get_html.php?ip=" . $ip . "&position=true");
$ContentArr = explode("\n", $Content);
$Stack = array();
$Ctr = 0;
foreach($ContentArr as $Item)
{
if($Ctr == 2)
{
$Ctr++;
continue;
}
if($Ctr == 6)
break;
$SingleItemArr = explode(":", $Item);
array_push($Stack, $SingleItemArr[1]);
$Ctr++;
}
$MappedStr = array("country" => $Stack[0], "city" => $Stack[1], "latitude" => $Stack[2], "longitude" => $Stack[3], "ip" => $Stack[4]);
$JsonEncoded = json_encode($MappedStr);
return $JsonEncoded;
}
MaxMindからPHPを介してGEOIPデータベースにクエリを実行することは、優れたソリューションであると指摘することが非常に重要だと思います。サイトに個人サイトのトラフィックを超えるトラフィックが発生する場合は、MaxMindに投資する必要があります。ライセンス。大量のeコマース小売サイトにMaxMindを統合した経験があるので、コストはかなり大きくなる可能性があります(ただし、支払いシステムに関するメリットはそれだけの価値があります)。
もう1つコメント。GeoIPは、ユーザーが接続しているISPのローカルDNSサーバーの一般的なカバレッジエリアに対してのみ正確です。GPSではありません。それは一般的に通りのレベルに降りることはありません。また、ユーザーがプロキシやVPNなどを介して接続している場合、データ/情報は役に立ちません。