使用IP

时间:2015-06-30 06:07:43

标签: php location

我想使用访问我网站的访问者的IP来实施位置跟踪器。 我使用以下代码:

<?php
error_reporting(E_ERROR | E_PARSE);

$info = file_get_contents("http://api.hostip.info/get_html.php");
$arr1 = preg_split("/[\s,]+/", "$info");
end($arr1);

$z         = prev($arr1);
$geoplugin = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip=$z') );
$loc       = $geoplugin['geoplugin_regionName'];

echo "<td><input type='text' name='location' value='$loc'  style='width:250px;height:50px;display:inline;background- color:#FFF;color:black;border-radius:0px;border:1px solid #C8C8C8' placeholder='Current Location'></td>"; ?>

但是,我无法获取具体位置,并且每次都显示不同的位置。

2 个答案:

答案 0 :(得分:0)

GeoPlugin IP Detection

<?php
    $user_ip = getenv('http://api.hostip.info/get_html.php');
    $geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$user_ip"));
    $city = $geo["geoplugin_city"];
    $region = $geo["geoplugin_regionName"];
    $country = $geo["geoplugin_countryName"];

或者你可以使用

ipinfo.io General Logging

ipinfo.io Developer Logging

完整的IP详细信息

$ curl ipinfo.io/8.8.8.8
{
  "ip": "8.8.8.8",
  "hostname": "google-public-dns-a.google.com",
  "loc": "37.385999999999996,-122.0838",
  "org": "AS15169 Google Inc.",
  "city": "Mountain View",
  "region": "California",
  "country": "US",
  "phone": 650
}

<强>的IPv6

在查找IPv6地址数据和发出IPv6请求方面,都完全支持IPv6。

$ curl ipinfo.io
{
  "ip": "2601:9:7680:363:75df:f491:6f85:352f",
  "hostname": "No Hostname",
  "city": null,
  "region": null,
  "country": "US",
  "loc": "38.0000,-97.0000",
  "org": "AS7922 Comcast Cable Communications, Inc."
}

http://ipinfo.io/json用于您自己的IP

http://ipinfo.io/8.8.8.8/json了解有关其他IP的详细信息

<强> JSONP

还支持JSONP,它允许您完全在客户端代码中使用ipinfo.io。您只需要指定回调参数,例如。 http://ipinfo.io/?callback=callback。大多数JavaScript库会自动为您处理。这是一个记录客户端IP和国家/地区的jQuery示例:

$.get("http://ipinfo.io", function(response) {
    console.log(response.ip, response.country);
}, "jsonp");

答案 1 :(得分:0)

这有效:

<?php
error_reporting(E_ERROR | E_PARSE);
$ip = $_SERVER['REMOTE_ADDR'];

$url = 'http://www.geoplugin.net/php.gp?ip='.$ip;
$geoplugin = unserialize(file_get_contents($url));
// print_r($geoplugin); // To see what keys are available...

$loc = $geoplugin['geoplugin_countryName'];
echo "
    <td>
        <input type='text' name='location' value='$loc' style='width:250px;height:50px;display:inline;background-color:#FFF;color:black;border-radius:0px;border:1px solid #C8C8C8' placeholder='Current Location'/>
    </td>
";
?>