Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一个web服务可以在PHP中检测访问者的国家/地区?_Php_Web Services_Geolocation - Fatal编程技术网

是否有一个web服务可以在PHP中检测访问者的国家/地区?

是否有一个web服务可以在PHP中检测访问者的国家/地区?,php,web-services,geolocation,Php,Web Services,Geolocation,我使用PHP,我想知道是否有一个免费的web服务可以检测我的访问者所在的国家。现在我可以得到他们的IP,我已经下载了一些与一些地点相关的IPtables,但我认为它们不太准确。 所以,如果你知道一些免费的网络服务,那就太棒了。谢谢 你可以看看开源解决方案。你可以下载并使用这个数据库我从webservicex.net使用了以下SOAP,效果很好 当然,您还需要在PHP配置中启用SOAP支持 然后,您可以尝试以下方法: $client = new SoapClient("http://www.web

我使用PHP,我想知道是否有一个免费的web服务可以检测我的访问者所在的国家。现在我可以得到他们的IP,我已经下载了一些与一些地点相关的IPtables,但我认为它们不太准确。
所以,如果你知道一些免费的网络服务,那就太棒了。谢谢

你可以看看开源解决方案。

你可以下载并使用这个数据库

我从webservicex.net使用了以下SOAP,效果很好

当然,您还需要在PHP配置中启用SOAP支持

然后,您可以尝试以下方法:

$client = new SoapClient("http://www.webservicex.net/geoipservice.asmx?WSDL");
$params = new stdClass;
$params->IPAddress = 'xxx.xxx.xxx.xxx';
$result = $client->GetGeoIP($params);
// Check for errors...
$country = $result->GetGeoIPResult->CountryName;

没有IP到位置将是非常准确的;我不相信“识别国家”之外的准确性。许多运营商都在为他们的移动客户端安装本机,Opera(台式机和移动设备)在挪威有一个proxy+加速器,公司用户有VPN,这使得连接看起来像是来自主办公室,地理位置数据经常出错(例如,大多数IP地理定位仪将我锁定在200公里外的DSL上——运营它的公司位于我所在的其他地方)。强制性XKCD:它看起来很利基,我会在家里尝试,如果一切正常,我会检查这一个作为最佳答案:)如果上述情况不适合你,你也可以尝试另一个好的免费服务。我对结果持怀疑态度,因为它是免费的,所以你不能期望它们100%准确。。。但是它说我必须支付50美元的许可费:(你需要在开源部分使用GeoLite库。很酷,但我实际上在寻找一个web服务,无论如何,谢谢