0

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

function showCity($currIP){

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

}
4

2 回答 2

2

您的 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;
于 2012-05-15T20:24:25.257 回答
1

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

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

于 2012-05-15T20:28:26.677 回答