获取网站访问者位置的最佳方式是什么?

时间:2011-12-19 03:22:04

标签: php javascript geolocation ip-geolocation

谷歌搜索后,我发现许多解决方案似乎无法正常工作或需要用户许可。

寻找易于使用的东西,PHP或Javascript,并且不需要用户的许可。它不需要是最准确的。

3 个答案:

答案 0 :(得分:5)

Google Analytics(分析)很适合这个(javascript)。

编辑: 应该指出Google Analytics有一个API可以获取城市/国家/地区信息以及所有报告信息,如果您需要以编程方式对其进行操作 - http://code.google.com/apis/analytics/docs/

但如果那不是一个选择:

您可以使用PHP $_SERVER['REMOTE_ADDR']

获取用户ip

有了这个,您可以使用PHP的GeoIP库来对其进行地理定位:http://php.net/manual/en/book.geoip.php

答案 1 :(得分:1)

这就是我使用的(您可以通过$_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;
    }

答案 2 :(得分:1)

我认为指出从MaxMind通过php查询GEO IP数据库是一个很好的解决方案非常重要,如果该网站的流量超出个人网站的流量,那么您将不得不进行投资在MaxMind许可证中。拥有将MaxMind集成到大批量电子商务零售网站的经验,成本可能非常高(尽管支付系统的好处非常值得)。

还有一条评论。 GeoIP仅对用户所连接的ISP本地DNS服务器的一般覆盖区域准确。它不是GPS。它通常不会到达街道水平。而且,如果用户通过代理,VPN等连接,则数据/信息无用。