1

谷歌搜索后,我发现许多似乎不起作用或需要用户许可的解决方案。

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

4

3 回答 3

5

谷歌分析非常适合这个(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

于 2011-12-19T03:30:19.603 回答
1

这就是我使用的(您可以通过获取 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;
    }
于 2011-12-19T03:48:37.317 回答
1

我认为指出通过 php 从 MaxMind 查询 GEO IP 数据库是一个很好的解决方案非常重要,如果该站点的流量超出个人站点的流量,您将不得不投资 MaxMind执照。在为大容量电子商务零售网站集成 MaxMind 的经验之后,成本可能相当高(尽管支付系统方面的好处非常值得)。

再来一条评论。GeoIP 仅准确到用户连接到的 ISP 本地 DNS 服务器的一般覆盖区域。它不是全球定位系统。它通常不会下降到街道水平。而且,如果用户通过代理、VPN 等进行连接,则数据/信息将毫无用处。

于 2011-12-19T03:55:28.620 回答