WebSocket怎么获取客户端的IP
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要介绍"WebSocket怎么获取客户端的IP",在日常操作中,相信很多人在WebSocket怎么获取客户端的IP问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2024年11月22日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安全错误
数据库的锁怎样保障安全
中山工业点胶软件开发
政务软件开发
中兴云电脑软件开发
大学网络安全管理工作ppt
北京巨臻互联网科技
软件开发在线观看视频缓存
服务器网络搭建是什么工作
黄石网络安全保卫大队
档案管理系统数据库建设规范
吉林省会考软件开发者
刀片服务器的硬盘
网络网络技术有限公司怎么样
深信服网络安全哪家有名
安华金数据库安全系统
数据库int怎么设置为无符号
苏州仪器软件开发公司电话
可达鸭服务器
网络安全法相关知识点
开展网络安全管理员培训
财政局网络安全实施方案
服务器管理ip如何设置
湖南学it软件开发薪资
网关没有返回数据库
附加数据库错误代码948
vulkan软件开发
数据库对数字的读取速度
最新网络技术资料
如何更改主机服务器密码
职业技能鉴定考试软件开发
如何导入mysql数据库