WebSocket怎么获取客户端的IP
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章主要介绍"WebSocket怎么获取客户端的IP",在日常操作中,相信很多人在WebSocket怎么获取客户端的IP问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年02月08日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安全错误
数据库的锁怎样保障安全
三维gis开发数据库
一组数据存储到数据库
软件开发考证要多久
计算机技术和网络技术包括
杭州玉京网络技术有限公司
网络安全实用技术答案
主板网络安全公司
做软件开发包装经验没问题吧
目前网络安全软件有哪些
北京凯迪兴业网络技术
ios有编程软件开发
小学学校网络安全情况记录表
大数据 数据挖掘 数据库
联想服务器数据恢复
高中学考网络技术应用知识点
学校知网数据库多久一更新
棋牌游戏服务器设计
怎么获得网络安全的工作
网络安全的起源和原因
软件开发工作绩效考核
武汉哪里做软件开发比较多
cas部署服务器最低配置
中国人对数据库有哪些贡献
国外网络安全书籍推荐
网络安全漏洞扫描工作方案
网络安全你我他图片
sybase数据库查询行数
计算机网络技术04741
分布式数据库错误的是
网络安全手抄报简单 漂亮