php - 根据IP地址将位置保存到数据库

标签 php file geolocation ip

我正在尝试使用 hostip 以根据 IP 地址保存到数据库用户的一般区域/位置。但是我不确定如何从我收到的输出中解析数据。

    <?php
        $ip = $_SERVER['REMOTE_ADDR'];
        $data = json_decode(file_get_contents("http://api.hostip.info/get_html.php?ip=$ip")); //<-not sure how
        $country = $data['Country'];
        $city = $data['City']; 
    ?>

你可以在这里看到我是如何接收数据的: http://api.hostip.info/get_html.php?ip=00.0.00.00

另一种选择是使用此处的第一个答案(使用 ipinfodb):Getting location details from IP in PHP , 但它甚至不显示任何数据,即使我尝试在 url 中插入我的 IP,更不用说解析结果了,所以我改为上面的。

最佳答案

因此,根据 ipinfodb ,您将必须注册一个 API key 。但是他们有一个 API class ,即 getCountry($host) 将在您提供 protected $apiKey = ''; 您的 API key 后获取 IP 的国家/地区。或者,如果您不想使用它,您可以使用他们的 XML 或他们的 JSON API。

更新 1

或者,如果这对您来说太难了,那么可以在其他服务的换行符 (\n) 上使用 explode。或者,也许使用其他服务。

更新 2

似乎geoPlugin ,在您链接的问题中提到不需要 API key 。他们使用的代码是 echo var_export(unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$ip)));

关于php - 根据IP地址将位置保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069508/

相关文章:

c# - 为什么 hash_pbkdf2 (PHP) 的输出与 .NET/C# 实现不同

javascript - 在按钮的onclick属性中传递php数组并在javascript中读取它

php - 是否可以有一个具有私有(private)/ protected 方法的接口(interface)?

php - 使用IP地址在谷歌地图上定位用户位置

php - Alice bundle - 如何在 yml 夹具中使用编码密码

c - 如何在 C 中按字母顺序对文件的行进行排序?

c++ - 一点一点地写一个文件

python - 在读取 Python 文件中的行时跳过前几行

sql - postgres空间索引

java - 如何使用 Selenium 默认启用地理位置?