【发布时间】:2011-09-25 02:59:50
【问题描述】:
我需要为我们的 JBoss Netty 服务器的每个请求记录用户 ip ady。我想:
MessageEvent e;
e.getChannel().getRemoteAddress();
是正确的答案,但这总是返回 127.0.0.1 并且我需要实际的客户端 IP。来自 Rails,我检查了他们如何从文档中找到 ip:
确定原始 IP 地址。 REMOTE_ADDR 是标准但会 如果用户在代理后面,则失败。 HTTP_CLIENT_IP 和/或 HTTP_X_FORWARDED_FOR 由设置 代理所以检查这些如果 REMOTE_ADDR 是一个代理。 HTTP_X_FORWARDED_FOR 可能是一个逗号- 多个情况下的分隔列表 链式代理;最后一个地址 不可信的是 原始 IP。
那么我应该检查 Netty 中的所有标题还是有更简单的方法?
【问题讨论】: