如何在akka-http
下的java
中获取 ipv4 客户端IP?
在我的createRoute
方法上,我尝试:
return extractClientIP(clientIp -> {
Optional<InetAddress> optAdd = clientIp.getAddress();
return complete(optAdd.get().getClass().getName());
});
但我得到了java.net.Inet6Address
个实例而不是java.net.Inet4Address
个实例。
request.getHeader("Remote-Address")
也会返回ipv6。
感谢。
答案 0 :(得分:1)
尝试为您的Akka-HTTP应用设置首选项以使用IPv4。这应该通过设置以下JVM选项来完成:
java.net.preferIPv4Stack=true
如果你正在使用SBT:
javaOptions += "-Djava.net.preferIPv4Stack=true"
相关问题: https://superuser.com/questions/453298/how-to-force-java-to-use-ipv4-instead-ipv6