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


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

我不是php专家。我开发安卓应用程序。在我的应用程序,我从这个url http://ip2country.sourceforge.net/ip2c.php?format=JSON获取用户的ip地址。正如你所看到的,当一些人打开这个url时,它会返回一些信息,包括IP地址。我只想获得IP和(如果可能的话)国家。大多数情况下,这个url是繁忙的,不返回ip,并给出最大活动用户连接错误。你能给我任何php文件,我可以把在我自己的网站主机和调用url获取ip。返回的数据应该是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通过$_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);

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

我已经按照答案成功地实现了它