簡體   English   中英

如何在CometD中獲取客戶端的代理IP地址?

[英]How to get client's Proxy IP address in CometD?

使用提琴手作為HTTP代理,我連接到本地CometD服務器。

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

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


如果客戶端使用WebSocket與CometD服務器進行通信,那么HTTP代理根本不會生效,那么我得到的是原始地址,對嗎?

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;
}

如果有幫助的話,它將獲得whit ip的位置...也將獲得代理位置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM