サイト訪問者の場所を取得する最良の方法は何ですか?

グーグルでは、うまく動作しない、またはユーザーの許可が必要なソリューションが多数見つかりました。

使い方が簡単なもの、PHPやJavascriptを探していて、ユーザの許可を必要としません。最も正確である必要はありません。

1
一番いい方法?彼らに尋ねる。それ以外の場合は、GeoIPを使用し、多くの場合、GeoIPが非常に不正確であることに備えてください。
追加された 著者 ceejayoz,
geoIPを使用すると、正確な場所を取得できません。 HTML5を使用して近くのWifiアクセスポイントを利用してより正確な場所を取得するには、ユーザーの許可が必要です。回避する方法はありません。
追加された 著者 Dimme,
右の関連する質問を参照してください、これは多くの質問があります
追加された 著者 user557846,

3 答え

Googleアナリティクスはこれに最適です(javascript)。

EDIT: Should point out that Google Analytics has an API to get City/Country info and all reporting info if you need to programmatically do something with it - http://code.google.com/apis/analytics/docs/

しかし、それはオプションではない場合:

You can get a users ip with PHP's $_SERVER['REMOTE_ADDR']

With that, you can use PHP's GeoIP library to geolocate it: http://php.net/manual/en/book.geoip.php

5
追加された
上記で提供したGoogleのリンクから街情報を取得するためにGAを取得して使用する方法については何も見つかりません。あなたは詳しく説明できますか?ありがとう
追加された 著者 Stuart,

これは私が使うものです(あなたは $ _ SERVER ['REMOTE_ADDR'] でIPを取得して関数に渡すことができます):

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;
    }
1
追加された

私は、サイトがMaxMindに投資しなければならない個人サイトのトラフィック量を超えてトラフィック量を増やすつもりならば、PHPを介してMaxMindからGEO IPデータベースに問い合わせることは優れた解決策であることを指摘することは非常に重要だと思いますライセンス。大量の電子商取引小売サイト向けにMaxMindを統合した経験を持つことで、コストはかなり大きくなる可能性があります(ただし、支払いシステムに関するメリットは十分です)。

もう1つのコメント。 GeoIPは、ユーザが接続しているISPのローカルDNSサーバの一般的なカバレッジエリアに対してのみ正確です。それはGPSではありません。それは一般に通りの水準には下がらない。ユーザーがプロキシ、VPNなどで接続している場合、データ/情報は役に立たない。

1
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com

JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript