2015-06-30 59 views
0

我想使用訪問我的網站的訪問者的IP實現位置跟蹤器。 我使用下面的代碼:使用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>"; ?> 

但是,我無法得到具體位置,它顯示了不同的位置每次。

+0

你在'$ info' –

+0

你是怎麼想出那個故事嗎?第一項服務不是爲訪問者/客戶端提供IP,而是爲您的服務器提供IP。 – mario

+0

我得到IP形式的$信息,然後從該IP獲取位置。 –

回答

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"); 
+0

問題解決了? –

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> 
"; 
?>