IP定位器

时间:2015-05-24 14:05:01

标签: php location ip

我想通过他们的IP找到我的网站访问者的位置(国家,城市,...)。 我在编码php。 谁能帮我? 像这样的东西:

   $url = json_decode(file_get_contents("http://api.ipinfodb.com/v3/ip-city/?key=/*userapikey*/
    ip=".$_SERVER['REMOTE_ADDR']."&format=json"));
    $country=$url->countryName;  // user country
    $city=$url->cityName;       // city
    $region=$url->regionName;   // regoin
    $latitude=$url->latitude;    //lat and lon
    $longitude=$url->longitude;

3 个答案:

答案 0 :(得分:1)

似乎网址中缺少&

$url = json_decode(file_get_contents("http://api.ipinfodb.com/v3/ip-city/?key=/*userapikey*/&ip=".$_SERVER['REMOTE_ADDR']."&format=json"));

可能你应该编码IP:

$url = json_decode(file_get_contents("http://api.ipinfodb.com/v3/ip-city/?key=/*userapikey*/&ip=".urlencode($_SERVER['REMOTE_ADDR'])."&format=json"));

然后你可以这样做以获得有关结果的信息:

var_dump($url);

如果您还有其他问题,请将其写入问题。

答案 1 :(得分:1)

看看freegeoip.net。它是一个Web服务,可以为您提供特定IP所需的数据。

E.g:

https://freegeoip.net/json/1.2.3.4

将为您提供此JSON数据:

{
    ip: "1.2.3.4",
    country_code: "US",
    country_name: "USA",
    region_code: "WA",
    region_name: "Washington",
    city: "Mukilteo",
    zip_code: "98275",
    time_zone: "America/Los_Angeles",
    latitude: 47.945,
    longitude: -122.305,
    metro_code: 819
}

答案 2 :(得分:0)

结帐https://freegeoip.net/。他们提供免费API,每小时最多10,000次搜索。

示例:

$res         = json_decode(file_get_contents("https://freegeoip.net/json/109.80.75.20"));
$countryCode = $res->country_code;
$country     = $res->country_name;