【问题标题】:What is the best way to get a site visitor's location? [closed]获取站点访问者位置的最佳方法是什么? [关闭]
【发布时间】:2011-12-19 03:22:03
【问题描述】:

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

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

【问题讨论】:

  • 看右边的相关问题,这个被问了很多
  • 最好的方法?问他们。否则,请使用 GeoIP,并为它在许多情况下非常不准确做好准备。
  • 使用 geoIP 您将无法获得确切的位置。使用 HTML5 来利用附近的 Wifi 接入点来获取更准确的位置需要用户许可,您无法规避这一点。

标签: php javascript geolocation ip-geolocation


【解决方案1】:

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

【讨论】:

  • 我无法从您在上面提供的 Google 链接中获取和使用 GA 获取城市信息。你能详细说明一下吗?谢谢
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多