它是能够获得位置的详细信息,从用户的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。

在初始问题仍然相关的许多;现在晚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文件。它会自动搜索一个良好的更新数据库,并返回该国的细节给你。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top