java - extractClientIp 上的 Ipv4 ClientIp -> akka-http

标签 java akka akka-http

如何在java下的akka-http中获取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。

谢谢。

最佳答案

尝试为您的 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

关于java - extractClientIp 上的 Ipv4 ClientIp -> akka-http,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43786822/

相关文章:

scala - Akka HTTP 连接池在几个小时后挂起

java - 如何为多个(10k - 100k)请求正确调用 Akka HTTP 客户端?

java - Spring JPA异常翻译

Java 8 : check for common elements in two lists using streams

java - isSearchable 什么时候会为 Oracle JDBC 列返回 false?

java - akka 真的能解决死锁吗?

java - 获取 TreeMap 中给定节点的所有子节点

java - 在 Play Framework 中根据参数注入(inject)依赖

scala - 如何更改组合 future 的超时时间?

scala - 如何在 akka-http 客户端请求中设置 Bearer token