用于 IP 地理定位的 PHP 和 API

Posted

技术标签:

【中文标题】用于 IP 地理定位的 PHP 和 API【英文标题】:PHP & API for IP Geolocation 【发布时间】:2012-05-15 20:22:36 【问题描述】:

我正在尝试在我的网络应用程序中使用http://www.hostip.info/use.html 来显示 IP 地址的大致城市位置。我无法弄清楚如何实际显示 API 的内容...这是我所拥有的不起作用的内容。

function showCity($currIP)

$lookupData = 'http://api.hostip.info/get_html.php?ip='.$currIP;
return $lookupData;


【问题讨论】:

【参考方案1】:

您的 API 会返回:

Country: UNITED STATES (US)
City: Seattle, WA
IP: 168.111.127.225

因此,您需要对该结果进行一些字符串解析。使用以下内容即可开始:

 $array = preg_split('/$\R?^:/m', $lookupData);
 print_r($array);

试试这个:

$array = preg_split("/[\r\n]/", $lookupData, -1, PREG_SPLIT_NO_EMPTY);

另外,正如 mcmajkel 所提到的,如果您使用 JSON api 链接,您可以通过以下方式访问它:

$lookupData = 'http://api.hostip.info/get_json.php?ip='.$currIP;
$api = json_decode($lookupData);
$myName = $api->country_name;
$myCode = $api->country_code;
$myCity = $api->city;
$myIP   = $api->ip;

【讨论】:

这似乎不起作用。我明白了:数组([0] => api.hostip.info/get_html.php?ip=xxx.xxx.xxx.xxx) 用新的正则表达式调整答案 - 试一试【参考方案2】:

此调用返回字符串,如 GregP 所述。但是你可以打电话 http://api.hostip.info/get_json.php?ip=12.215.42.19

并得到一个不错的 JSON 作为回报,这将更容易 parse

【讨论】:

以上是关于用于 IP 地理定位的 PHP 和 API的主要内容,如果未能解决你的问题,请参考以下文章

PHP地理定位API [关闭]

win32 api根据wifi和IP地址对笔记本电脑进行地理定位

IP 地理定位 API 是如何制作的? [关闭]

JavaScript/jQuery:在 CodePen 中设置 IP 地理定位 API

用于Java代码的免费地理定位IP服务[关闭]

谷歌地图 api 地理定位和地点搜索