[英]How do you get Client's IP address? (Spring WebFlux WebSocket)
正如标题所说,可以这么说,您如何获得连接的详细信息。 有没有办法通过 WebSocketSession 获得它? 我觉得我错过了一些东西......
我需要一种方法来禁止不良用户的 IP 地址,并且我想在地图上显示所有在线用户(就像地图上的一个点)。 稍后我不需要帮助来获取客户端的 IP 地址。
我正在使用 Spring 的 WebFlux WebSocket。
编辑:我创建了一个功能请求: https : //jira.spring.io/browse/SWF-1728
基于 Servlet 的WebSocketSession
对象确实提供了该信息。 反应性风味似乎缺少这一点。
您应该创建一个Spring Framework 问题以将此作为增强请求。
WebSocketSession 有一个名为 getRemoteAddress() 的方法,您可以使用它的任何实现来获取远程地址。
例如,您可以使用 HttpServletRequest 查找 IP 地址
String remoteHost = request.getRemoteHost();
String remoteAddr = request.getRemoteAddr();
if (remoteAddr.equals("0:0:0:0:0:0:0:1")) {
InetAddress localip = java.net.InetAddress.getLocalHost();
remoteAddr = localip.getHostAddress();
remoteHost = localip.getHostName();
}
我做到了
public Mono<ServerResponse> hello(ServerRequest request) {
String remoteAddr = request.remoteAddress().get().getAddress().getHostAddress());
return null;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.