【问题标题】:How to get client's Proxy IP address in CometD?如何在 CometD 中获取客户端的代理 IP 地址?
【发布时间】:2014-03-26 04:10:28
【问题描述】:

使用 fiddler 作为 HTTP 代理,我连接到本地 CometD 服务器。

我继承了DefaultSecurityPolicy类,在canHandshake方法中得到了server.getContext().getRemoteAddress().getAddress().getHostAddress()的客户端IP地址。

但是,它返回客户端的真实IP(原始IP),但我想要的是直接与服务器通信的那个。有什么帮助吗?


如果客户端使用WebSocket与CometD服务器通信,HTTP代理根本不生效,所以我得到的是原来的addr,对吗?

【问题讨论】:

  • 好的,我终于明白了。 Fiddler 只是一个 http 代理,但我使用的是 WebSocket……对不起。

标签: java proxy ip jetty cometd


【解决方案1】:
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 获取位置... 它也将获得代理位置

【讨论】:

    猜你喜欢
    • 2019-01-16
    • 2012-03-14
    • 2012-02-16
    • 2015-12-20
    • 2016-03-29
    • 2019-01-14
    • 2019-03-15
    • 2013-07-10
    • 2021-10-22
    相关资源
    最近更新 更多