Jersey返回一个IPv6地址,即使在以下代码中我将Java属性java.net.preferIPv4Stack
显式设置为true
,而我想检索IPv4地址:
@Path("/getip")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_PLAIN)
public class PublicIp {
@GET
public Response getPublicIp(@Context HttpServletRequest req) {
System.setProperty("java.net.preferIPv4Stack" , "true");
String address = req.getRemoteAddr();
return Response.ok(address).build();
}
}
如果在本地使用,则返回0:0:0:0:0:0:0:1
。如何强制Jersey返回IPv4格式?
答案 0 :(得分:0)
尝试将其传递给JVM:
-Djava.net.preferIPv4Stack=true
在启动时,而不是在方法中将其设置为系统属性以获取IP。