有没有一个很好的PHP地理定位服务?

我正在寻找一个很好的PHP地理位置服务,所以当我开始我的应用程序,我可以有这样的事情:

<?php $service = new GeoLocService(); echo $service->getLat(); echo $service->getLng(); ?> 

以纬度和纬度值检索用户的位置。

地理位置需要在浏览器中完成,因为服务器(即PHP)永远无法find大部分的相关数据。 在浏览器中进行地理定位的主要API是Google,但是作为开发人员您不需要使用该API; 你会使用浏览器的API,这是标准化的(尽pipe目前为止只支持几个浏览器)。

在服务器端定位用户所获得的最有用的信息将是他们的IP地址,这通常足以将其定位到最近的城镇。 有IP到国家和IP到位的数据库和API,你可以下载来帮助这个。 有些是免费的,但要获得城镇级别的位置,您将支付服务费用。 无论你走到哪里,他们确实需要保持最新,因为IP范围往往被重新分配。

浏览器级的API通过让浏览器扫描Wi-Fi接入点的区域来工作。 它将访问点列表发送给Google,然后使用该访问点来计算Lat / Long(经常具有惊人准确的结果)。

他们如何做到这一点? 您可能还记得最近Google因为从人们的Wi-Fi中吮吸数据而陷入困境吗? 他们实际上试图做的是映射世界的Wi-Fi接入点为这个地理定位function。

当然,它要求客户端启用Wi-Fi。

请注意,您的浏览器不能直接访问客户端的访问点列表(即Javascript或DOM),因此您不能通过服务器将其发布到PHP以获取使用此方法的位置; 这将不得不在客户端完成。

MaxMind PHP API不错… http://www.maxmind.com/app/php

阅读以下关于Geo-Loacaion API的文档: http ://dev.w3.org/geo/api/spec-source-v2.html

我确信上面的文档对你非常有用。

PHP获取真实IP地址,国家,城市,州,访客语言

您可以检测到真正的IP,访客代理,语言,状态,城市。 但是对于PHP代码,你必须从Github下载PHP源代码 。

 <?php // Required Libraries require_once("ip.codehelper.io.php"); require_once("php_fast_cache.php"); // New Class $_ip = new ip_codehelper(); // Detect Real IP Address & Location $real_client_ip_address = $_ip->getRealIP(); $visitor_location = $_ip->getLocation($real_client_ip_address); // Output result echo $visitor_location['Country']." "; echo "<pre>"; print_r($visitor_location); 

在你的情况下,你$ visitor_location ['RegionName']从结果返回。