繁体   English   中英

如何获取用户的IP地址并以JSON返回数据

[英]How to get the IP address of the user and return the data in JSON

我不是PHP专家。 我开发android应用。 在我的应用程序中,我从此URL http://ip2country.sourceforge.net/ip2c.php?format=JSON获取用户的IP地址。 如您所见,当有人打开该URL时,它将返回一些信息,包括IP地址。 我只想获取IP和(如果可能)国家/地区。 大多数情况下,此URL繁忙,并且不返回ip并给出最大活动用户连接错误。 你能给我任何可以放在我自己的虚拟主机中并调用URL获取IP的PHP文件吗? 返回的数据应该在json中,这样我就可以轻松解析它。 谢谢

<?php
$json = file_get_contents("http://ip2country.sourceforge.net/ip2c.php?format=JSON");
//this $json will have the response that the website sends. 
echo json_encode($json);
?>

您可以在调用此php文件的任何地方使用此对象,并做必要的操作

运行此php文件以检查输出

另一种方式: 编辑

<?php
$visitor_ip = $_SERVER['REMOTE_ADDR'];
echo $visitor_ip;
$data1 = file_get_contents("http://api.hostip.info/?ip=$visitor_ip");
echo "<br> $data1";
?>

您在PHP中获得IP地址,必须使用$_SERVER['REMOTE_ADDR']然后使用http://ipinfo.io将该IP传递到此网站。 您可以通过JSON数据获取位置信息,只需遵循此问题的第一个答案即可从IP地址获取位置信息

我已经按照答案成功实施了它。

您可以使用PHP通过$_SERVER['REMOTE_ADDR']获取用户IP地址。 然后,您可以使用IP到位置查询网站将其转换为国家/地区并将结果合并:

$ip = $_SERVER['REMOTE_ADDR'];

$loc = json_decode(file_get_contents('http://ipinfo.io/'.$ip.'/json'), true);

$country = isset($loc['country']) ? $loc['country'] : 'Unknown';

$result = array('ip'=>$ip, 'country'=>$country);

header('Content-Type: application/json');
echo json_encode($result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM