越来越位置的详细信息,从知识产权在PHP
-
11-09-2019 - |
题
它是能够获得位置的详细信息,从用户的IP地址在PHP.
任何建议??
感谢
解决方案
$ip = '98.229.152.237';
$xml = simplexml_load_file("http://ipinfodb.com/ip_query.php?ip=$ip");
print_r($xml);
输出:
SimpleXMLElement Object
(
[Ip] => 98.229.152.237
[Status] => OK
[CountryCode] => US
[CountryName] => United States
[RegionCode] => 33
[RegionName] => New Hampshire
[City] => Manchester
[ZipPostalCode] => 03103
[Latitude] => 42.9403
[Longitude] => -71.4435
[Timezone] => -5
[Gmtoffset] => -5
[Dstoffset] => -4
)
其他提示
您需要使用的一些旬报地理IP服务
一个免费服务我在谷歌发现: geoplugin 。 他们PHP的snipplets使用他们的服务: geoplugin / PHP
你可以看看的 我们的数据库, , GeoIP PECL扩展.
在我的情况:
- 我已经安装的延伸"
pecl install geoip
" - 我已经下载了 geolitecity数据库 和复制它
/usr/share/GeoIP/GeoIPCity.dat
所以它是发现的PECL扩展。
注意,还应该有一些梨包(PEAR::Net_GeoIP
)帮你,如果你无法安装任何PECL扩展。
一旦你已经安装了些,可以使用这种代码:
$ip = '82.229.x.y'; // replace with your IP address
var_dump(geoip_record_by_name($ip));
你会得到这种类型的输出:
array
'continent_code' => string 'EU' (length=2)
'country_code' => string 'FR' (length=2)
'country_code3' => string 'FRA' (length=3)
'country_name' => string 'France' (length=6)
'region' => string 'B9' (length=2)
'city' => string 'Lyon' (length=4)
'postal_code' => string '' (length=0)
'latitude' => float 45.75
'longitude' => float 4.84999990463
'dma_code' => int 0
'area_code' => int 0
其中,在我的情况,是真实的:我确实在市里昂FR。
查看 PEAR GeoIP的库。
在初始问题仍然相关的许多;现在晚2016)。
我经过多年的GEO定位体验答案如下...
超越“国家”位置的详细信息实时报告是不可靠的。所有信息都来自IP#ISP注册收集和它是相关信息定期更新,并通过主要的数据供应商传递。由于IP#s的下降或买来的供应商必须获得有关注册/有关业务的变化(即ISP)的细节。大多数数字以“块”获得的但不是全部不一定到相同的服务器相关的。
*很多(?如果不是大多数)的小私网站提供信息给公众使用“的MaxMind”的FREE DB和(不正确地)传递到公众;阅读的MaxMind警告。规模较小的网站不具备的资源,授权登记的不断更新。
在自由的MaxMind和“ip2location”的DB其付费的数据库的一个较小的子集;看到自己的警告什么缺少的解释。
许多IP#在块买s的过任意数量的服务器的共享,这导致信息歧义。当使用无线网络连接到ISP时,相对于一个可能稳定有线ADSL /电缆/嗒嗒连接时,错误a可以是因为ISP网络服务器中的特别宽放置(中继中)的令人吃惊;在甚至有些每届会议期间和会议之间或许大多数情况下,非静态变化。
作为例子,当使用ISP连接的漫游无线笔记本电脑加密狗我经常引述的另一状态,并且可以(在这里AU)任何地方从几百到几千的KMS从我的实际位置了。
你能不能......用PHP
使用几个主要的供应商数据库(即ip2location.com)一个将有机会获得可以用来获得所需的信息可用的服务器端脚本。而不是从他们不太可靠的无DB我用ip2location的DB1只获得从中我可以做什么,我想通过这两个Perl和PHP游客“国家”。
我也自动下载并解压缩,按照使用注意事项,按月则刚刚更新后的二进制分贝。显然,从那些自己的网站访问查找窗口克服了远程点播采集和处理的问题。
对于我的要求ip2location FULL分贝比每年的MaxMind是相当便宜。 *然而的MaxMind FREE分贝比ip2location FREE DB更广泛。
请注意试图获得更多的游客地址和状态信息等等,我强烈建议它显示的方式,游客可以改正时;以免他们离开沮丧。
问候。
$ip = "66.96.147.144";
$geoPlugin_array = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip=' . $ip) );
echo '<pre>';
print_r($geoPlugin_array);
OUTPUT :
Array
(
[geoplugin_request] => 66.96.147.144
[geoplugin_status] => 200
[geoplugin_credit] => Some of the returned data includes GeoLite data created by MaxMind, available from http://www.maxmind.com.
[geoplugin_city] => Burlington
[geoplugin_region] => MA
[geoplugin_areaCode] => 781
[geoplugin_dmaCode] => 506
[geoplugin_countryCode] => US
[geoplugin_countryName] => United States
[geoplugin_continentCode] => NA
[geoplugin_latitude] => 42.5051
[geoplugin_longitude] => -71.204697
[geoplugin_regionCode] => MA
[geoplugin_regionName] => Massachusetts
[geoplugin_currencyCode] => USD
[geoplugin_currencySymbol] => $
[geoplugin_currencySymbol_UTF8] => $
[geoplugin_currencyConverter] => 1
)
我最近发现 PHP GeoIPLocation库
它,你需要在你的PHP脚本包括一个单一的PHP文件。它会自动搜索一个良好的更新数据库,并返回该国的细节给你。