WebSocket怎么获取客户端的IP
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,这篇文章主要介绍"WebSocket怎么获取客户端的IP",在日常操作中,相信很多人在WebSocket怎么获取客户端的IP问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年12月04日WebSocket怎么获取客户端的IP
这篇文章主要介绍"WebSocket怎么获取客户端的IP",在日常操作中,相信很多人在WebSocket怎么获取客户端的IP问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"WebSocket怎么获取客户端的IP"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
今天用到websocket,希望服务器端在连接建立时获取到客户端的IP,看了源码没有找到提供的api,后来一顿百度,在stackoverflow 找到了解决方案,经过测试可以使用,总结了一下, 下边是代码:
import java.lang.reflect.Field;import java.net.InetSocketAddress;import javax.websocket.RemoteEndpoint.Async;import javax.websocket.Session; public class WebsocketUtil { public static InetSocketAddress getRemoteAddress(Session session) { if (session == null) { return null; } Async async = session.getAsyncRemote(); //在Tomcat 8.0.x版本有效// InetSocketAddress addr = (InetSocketAddress) getFieldInstance(async,"base#sos#socketWrapper#socket#sc#remoteAddress"); //在Tomcat 8.5以上版本有效 InetSocketAddress addr = (InetSocketAddress) getFieldInstance(async,"base#socketWrapper#socket#sc#remoteAddress"); return addr; } private static Object getFieldInstance(Object obj, String fieldPath) { String fields[] = fieldPath.split("#"); for (String field : fields) { obj = getField(obj, obj.getClass(), field); if (obj == null) { return null; } } return obj; } private static Object getField(Object obj, Class> clazz, String fieldName) { for (; clazz != Object.class; clazz = clazz.getSuperclass()) { try { Field field; field = clazz.getDeclaredField(fieldName); field.setAccessible(true); return field.get(obj); } catch (Exception e) { } } return null; } }调用测试:
/** * 连接建立成功调用的方法*/ @OnOpen public void onOpen(Session session) { InetSocketAddress remoteAddress = WebsocketUtil.getRemoteAddress(session); System.out.println("有新连接加入!" + remoteAddress); }输出结果:
到此,关于"WebSocket怎么获取客户端的IP"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
客户
端的
学习
有效
方法
更多
版本
帮助
测试
实用
成功
接下来
代码
文章
方案
服务器
源码
理论
知识
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术实训1
泰国什么时候颁布网络安全法
php 连数据库安全吗
怎么查看服务器ilo管理口
小麦有专属的数据库么
阿里政务云数据库的类型
网络安全法你 为了未成年人
网络安全和运维级别区别
用友服务器系统要求
阿里云服务器注册后怎样释放
预约上门推拿的软件开发
域名如何解析到服务器
删除数据库数据为空的数据
校园网络安全问题.
网络安全设备知识学习
网络技术人员怀疑无效的
吴贺祥软件开发
网络技术在深部开拓中的应用
网络安全防范研究调查
我的世界狼人杀服务器
数据库中怎么建立公共关系
qt访问influx数据库
淄博联想服务器济南总代
文曲星下载软件开发
git上传单独提交数据库
网络技术训练室建设项目
传奇access数据库修改
西藏数据库培训报价
网络安全需禁用的端口
美国网络安全基础设施