0

即使在我将 Java 属性显式设置为 的以下代码中, Jerseyjava.net.preferIPv4Stack也会返回一个 IPv6 地址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 格式?

4

1 回答 1

0

尝试将其传递给 JVM:

-Djava.net.preferIPv4Stack=true

在开始时,而不是将其设置为方法中的系统属性以获取 IP。

于 2013-09-26T02:25:04.543 回答