获取站点访问者位置的最佳方法是啥? [关闭]

Posted

技术标签:

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

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

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

【问题讨论】:

看右边的相关问题,这个被问了很多 最好的方法?问他们。否则,请使用 GeoIP,并为它在许多情况下非常不准确做好准备。 使用 geoIP 您将无法获得确切的位置。使用 html5 来利用附近的 Wifi 接入点来获取更准确的位置需要用户许可,您无法规避这一点。 【参考方案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 服务器的一般覆盖区域。它不是全球定位系统。它通常不会下降到街道水平。而且,如果用户通过代理、*** 等进行连接,则数据/信息将毫无用处。

【讨论】:

以上是关于获取站点访问者位置的最佳方法是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

进行此站点重定向的最佳方法是啥

将布局样式应用于站点上不同位置的样式组件和 React 组件的最佳方法是啥?

以编程方式访问 Graphite 数据的最佳方式是啥? [关闭]

编写 Maven2 站点插件时获取站点资源列表的最佳方法是啥?

使用 ASP.NET MVC 实现字段验证的最佳方法是啥? [关闭]

iPhone位置跟踪应用程序在后台的最佳方法是啥[关闭]