2014-02-24 209 views
0

使用fiddler作爲HTTP代理,我連接到本地的CometD服務器。如何在CometD中獲取客戶端的代理IP地址?

我繼承了DefaultSecurityPolicy這個類,得到了客戶端IP地址server.getContext().getRemoteAddress().getAddress().getHostAddress()canHandshake方法。

但是,它返回客戶端的真實IP(原始IP),但我想要的是直接與服務器通信。任何幫助?


如果使用的WebSocket用的cometd服務器通信的客戶端,HTTP代理不生效可言,所以我得到的是原來的地址,對嗎?

+0

OK,我得到了最終的原因。提琴手只是一個HTTP代理,但我使用WebSocket ...我很抱歉。 – Terran

回答

0
public function getlocationFromIp() 
{ 
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
     // Check if using Shared Internet Environment 
     $ipAddress = $_SERVER['HTTP_CLIENT_IP']; 
    }elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ 
     // Check if using Proxy User 
     $ipAddress = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    }else{ 
     $ipAddress = $_SERVER['REMOTE_ADDR']; 
    } 
    $ip_geo_url = 'http://freegeoip.net/json/'.$ipAddress; 
    $ip_json = file_get_contents($ip_geo_url); 
    $ip_json = json_decode($ip_json); 
    return $ip_json; 
} 

它會得到位置絲毫IP,如果它幫助你...... 這將是獲得代理位置太

相關問題