gpt4 book ai didi

java - Netty - getRemoteAddress 每次返回不同的端口

转载 作者:行者123 更新时间:2023-12-02 07:14:38 25 4
gpt4 key购买 nike

我正在使用LittleProxy它实现了 Netty 。我正在尝试返回 HTTP 请求源的 IP 地址和端口。我使用getRemoteAddress方法,但返回的端口总是不同。似乎每次请求后都会累加?我一定错过了一些见解。

经过一番搜索,我尝试将其向下转换为 InetSocketAddress。但结果是一样的:

private void processRequest(final ChannelHandlerContext ctx, 
final MessageEvent me) {

final HttpRequest request = (HttpRequest) me.getMessage();
//THOMAS EDIT FOR OUTPUT REMOTE ID AND PORT
InetSocketAddress inetAddr = (InetSocketAddress)me.getRemoteAddress();
System.out.println("Source IP: " + inetAddr.getAddress());
System.out.println("Source Port: " + inetAddr.getPort());

最佳答案

Netty 的行为类似于网关或 NAT。它给出的 IpAddress 和 Ports 是它自己的端口号。

您可以尝试获取 HTTPHeader X-Forwarded-For

选项 2:

使用 ChannelHandlerContext 而不是 MessageEvent

ctx.getChannel().getRemoteAddress();

关于java - Netty - getRemoteAddress 每次返回不同的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15088253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com