gpt4 book ai didi

java - 错误 0 :0:0:0:0:0:0:1%0 getting IP V6 client

转载 作者:行者123 更新时间:2023-12-01 17:29:06 25 4
gpt4 key购买 nike

我有这个函数可以从 Java 上的请求 (HttpServletRequest) 中获取 HostAddress。但是使用 Jetty 7.x 并且我的 IP 是 ipV6 我总是遇到 iPv6 地址的错误。

我的功能:

xxxx.getIP(request, false);

public static String getIP(HttpServletRequest request, boolean proxy) {
String ip = "";
log.debug("X-getHeaderNames ["+ request.getHeaderNames()+"]");
if (proxy) {
ip = XFordwardedInetAddressUtil.getAddressFromRequest(request);
} else {
String _ip = request.getRemoteAddr();
ip = InetAddresses.forString(_ip).getHostAddress();
}
return ip;
}

错误:

DEBUG: org.encuestame.core.exception.EnMeMappingExceptionResolver - Resolving exception from handler [org.encuestame.mvc.controller.TweetPollController@4fc23996]: java.lang.IllegalArgumentException: '0:0:0:0:0:0:0:1%0' is not an IP string literal. java.lang.IllegalArgumentException: '0:0:0:0:0:0:0:1%0' is not an IP string literal. at org.encuestame.utils.net.InetAddresses.forString(InetAddresses.java:59) at org.encuestame.core.util.EnMeUtils.getIP(EnMeUtils.java:210) at org.encuestame.mvc.controller.AbstractBaseOperations.getIpClient(AbstractBaseOperations.java:262) at org.encuestame.mvc.controller.TweetPollController.detailTweetPollController(TweetPollController.java:332) at org.encuestame.mvc.controller.TweetPollController$$FastClassByCGLIB$$6990b004.invoke() at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedIntercepto

我知道 iPv6 本地主机格式应该是 '0:0:0:0:0:0:0:1' 但我的请求总是返回这个字符串 '0:0:0:0:0:0:0: 1%0'

有人可以帮助我吗?

最佳答案

问题是您正在使用的类 (org.encuestame.utils.net.InetAddresses) 显然不支持 IPv6。尝试使用java InetAddress Joachim 在他的回答中提到的类(class)。

关于java - 错误 0 :0:0:0:0:0:0:1%0 getting IP V6 client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12759740/

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