从JSP中得到访问者的真实IP(很急)!

xuhua205 2010-03-17 02:16:47
现在手头开发一个网站,有这么一个功能,就是根据访问者的IP自动显示访问者所在的区域;
现在遇到了一问题,我得到客户端IP的代码如下:


public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)
|| "null".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)
|| "null".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)
|| "null".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}



该代码得到的结果如下:
1.如果应用发布到局域网,在局域网内访问,得到的是我局域网的IP,如: 192.168.0.2
2.如果我将应用发布到独立IP的外网服务器上面,在任何地方访问,得到的IP总是 192.168.198.1,这一类局域网的IP段

我现在就是想在第二种情况下能够得到访问者的外网ip,请问各位有什么高招?
...全文
568 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
mon213 2012-06-03
  • 打赏
  • 举报
回复
请问怎么使用它啊??
czmchen 2010-03-19
  • 打赏
  • 举报
回复
我代码和LZ的一样,我的系统都是用它,可是都没什么问题!
xuhua205 2010-03-19
  • 打赏
  • 举报
回复
呵呵,强悍不能达到目的也是不行滴!
问题找出来了,用我的给的代码是可以地,只是因为服务器那边配置了集群,每次得到的是负载均衡的机器IP
CSND用户 2010-03-18
  • 打赏
  • 举报
回复
request.getRemoteAddr() 这个够强悍...

干嘛要写那么一大堆 楼主你不累?
nmgrlq 2010-03-18
  • 打赏
  • 举报
回复
request.getRemoteAddr()
就可以啊
zhuangwei517 2010-03-17
  • 打赏
  • 举报
回复
request.getRemoteAddr() 方法即可以得到访问者的IP
hjjk123 2010-03-17
  • 打赏
  • 举报
回复
关注中..................
xusheng1018 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chdw 的回复:]
2.如果我将应用发布到独立IP的外网服务器上面,在任何地方访问,得到的IP总是 192.168.198.1,这一类局域网的IP段


这个是因为你的服务器还不是直接在外网上,应该是服务器还有前置的路由,是路由做了地址映射后才访问到你机器的


这个不清楚你用什么路由转发的,像Windows都会有配置要求传递真实的IP的
[/Quote]

我也学习了!
xuhua205 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chdw 的回复:]
2.如果我将应用发布到独立IP的外网服务器上面,在任何地方访问,得到的IP总是 192.168.198.1,这一类局域网的IP段


这个是因为你的服务器还不是直接在外网上,应该是服务器还有前置的路由,是路由做了地址映射后才访问到你机器的


这个不清楚你用什么路由转发的,像Windows都会有配置要求传递真实的IP的
[/Quote]
那就是说我每次得到的实际上是服务器路由的IP了,难怪无论谁访问都是192.168.198.1,那这个貌似没办法解决了啊
orangemike 2010-03-17
  • 打赏
  • 举报
回复
你提的这个要求貌似很难.
fireelf000 2010-03-17
  • 打赏
  • 举报
回复
request.getRemote()获取到的IP是什么IP,汗一个,还真的没注意过
gulang76 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chdw 的回复:]

2.如果我将应用发布到独立IP的外网服务器上面,在任何地方访问,得到的IP总是 192.168.198.1,这一类局域网的IP段


这个是因为你的服务器还不是直接在外网上,应该是服务器还有前置的路由,是路由做了地址映射后才访问到你机器的


这个不清楚你用什么路由转发的,像Windows都会有配置要求传递真实的IP的
[/Quote]

学习了
ChDw 2010-03-17
  • 打赏
  • 举报
回复
2.如果我将应用发布到独立IP的外网服务器上面,在任何地方访问,得到的IP总是 192.168.198.1,这一类局域网的IP段


这个是因为你的服务器还不是直接在外网上,应该是服务器还有前置的路由,是路由做了地址映射后才访问到你机器的


这个不清楚你用什么路由转发的,像Windows都会有配置要求传递真实的IP的
内容概要:本文详细介绍了利用二维时域有限差分法(2D FDTD)对光子晶体90度弯曲波导进行数值仿真的Matlab代码实现。该仿真方法旨在精确分析光子晶体波导在弯曲结构下的光传输特性,揭示其导光机制与缺陷模式的调控原理。资源包含完整的Matlab程序代码,支持对空间网格划分、介电常数分布、边界条件(如PML吸收边界)及光源参数等关键仿真要素的灵活设置与优化,便于用户复现结果并开展深入研究。通过仿真可直观获得光场在波导的传播动态、透射谱特性以及能量损耗情况,为高性能光子器件的设计与优化提供理论依据和技术支持。; 适合人群:具备电磁场理论、光学基础和Matlab编程能力,从事光子学、集成光学或纳米光子器件研究的研究生、科研人员及工程技术开发者。; 使用场景及目标:①学习和掌握FDTD方法在周期性介质(光子晶体)器件仿真的具体应用流程;②研究90度弯波导的光传输性能,分析弯曲损耗来源并探索低损耗结构优化方案;③作为光子集成电路关键无源器件的设计与教学参考案例,服务于学术研究与工程实践。; 阅读建议:建议结合光子晶体能带理论与FDTD算法基本原理进行系统学习,运行代码时应逐步调整结构参数与仿真设置,观察光场演化和输出结果的变化,以深化对物理现象的理解,并可在此基础上拓展至其他复杂光子结构(如分束器、谐振腔)的仿真分析。
内容概要:本文系统研究了基于共识的捆绑算法(Consensus-Based Bundle Algorithm, CBBA)在多智能体多任务分配的应用,重点聚焦于远程太空船交会与维修任务的相对运动规划(RPO)问题。通过构建多航天器协同任务场景,采用Matlab代码实现了CBBA算法的全过程仿真,展示了其在分布式决策框架下高效完成任务分配的能力。研究深入探讨了任务收益建模、路径规划约束、通信延迟与动态重规划等关键环节,验证了CBBA在确保任务分配一致性、避免资源冲突、适应动态环境变化以及优化整体任务效能方面的优越性能,为复杂空间任务的自主协同提供了可靠的技术路径。; 适合人群:具备控制理论、航天动力学、分布式优化或多智能体系统等相关背景,从事航天任务规划、智能优化算法研究或相关工程实践的研究生、科研人员及航空航天领域工程师。; 使用场景及目标:①为多航天器在轨服务(如交会对接、空间维修)提供高效、鲁棒的分布式任务分配解决方案;②深入理解CBBA算法的核心机制及其在高动态、强约束空间任务的适应性与优化潜力;③推动分布式人工智能算法在航天工程实际系统的集成与应用验证。; 阅读建议:建议读者结合提供的Matlab代码,重点剖析任务建模逻辑、收益函数设计、共识迭代过程及收敛性分析模块,通过修改场景参数进行仿真实验,以深化对多智能体协同决策机制与算法性能边界条件的理解。

81,110

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧