Jersey返回IPv6地址,即使在;java.net.preferIPv4Stack“;是";“真的”;
返回IPv6地址,即使在以下代码中,我显式地将Java属性Jersey返回IPv6地址,即使在;java.net.preferIPv4Stack“;是";“真的”;,java,jersey,ip,ipv6,ipv4,Java,Jersey,Ip,Ipv6,Ipv4,返回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 Http
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:1
。如何强制Jersey返回IPv4格式?尝试将其传递给JVM:
-Djava.net.preferIPv4Stack=true
而不是将其设置为方法内的系统属性以获取IP