我需要为对我们的 JBoss Netty 服务器的每个请求记录用户 ip ady's。我想:
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 中的所有标题还是有更简单的方法?