2012-08-28 40 views
1

可能重複:
Getting Users Real IP address using PHP有可能使用PHP獲取網絡地址?

我對他離開頁面時節省約一個客戶端的一些信息網站的腳本。是否有可能獲得他的網絡地址,例如192.168.1.154

我在論壇上看到關於此的討論,他們說使用$_SERVER['HTTP_X_FORWARDED_FOR'],但它不工作!它向我展示了我的真實IP。

我該怎麼做?

+0

你能解釋一下你的網絡地址是什麼意思?如果你的意思是MAC地址,我認爲不可能在服務器端獲得客戶端的mac。 – PCoder

+0

就像192.168.1.154 – Mihai

回答

2

使用此:

<?php 

    echo $_SERVER['REMOTE_ADDR']; //ip of visitor - you need this 

    echo $_SERVER['SERVER_ADDR']; //ip of server 

?> 

使用JSON你也可以使用下面的代碼獲取客戶端IP:

$(document).ready(function(){ 

    //Service 1 
    $.getJSON("http://smart-ip.net/geoip-json?callback=?", 
      function(data){ 
       alert(data.host); 
      } 
    ); 

    //Service 2 
    $.getJSON("http://jsonip.appspot.com/?callback=?", 
      function (json){ 
       alert("User ip: " + json.ip); // alerts the ip address 
      } 
    ); 

}); 

希望這有助於。

0

更多信息我會看到var_dump($_SERVER);顯示你的網絡IP的哪一個參數。

2

如果您的服務器位於NAT'd網絡之外,則無法獲取客戶端的內部本地IP。這不僅會帶來安全風險,還會打敗NAT的目的。

可以,如果你想自己的本地NAT'd IP,運行JavaScript,something like this may work

function myIP(){ 
    var yip2=java.net.InetAddress.getLocalHost(); 
    var yip=yip2.getHostAddress(); 
    return yip; 
}//end myIP 

alert("your machine's local network IP is "+ myIP()) 
+0

問題是關於PHP .. !! – AlphaMale

+2

@AlphaMale它不能做!這就是爲什麼會提供可行的解決方案。 –

+0

這不適用於我的Chrome瀏覽器,並且在我的Firefox上我得到_your機器的本地網絡IP爲127.0.0.1_,這顯然不是我的NAT IP – user454322