我正在尝试使用 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/