项目开发中,小编遇到一种需求,就是将系统项目与某台主机的IP地址绑定,让该系统只能在某台主机上使用,不要问小编为什么,我也是第一次遇到这么奇怪的需求,当然也不要问小编为什么不使用权限控制,现在的权限控制组件已经发展的比较好了,答案就是领导嫌麻烦,我也很难办,事情难归难,可还是得解决,怎么解决这个事情呢?小编最开始的思路是这样的

首先、看看能不能在前端页面使用Jquery获取客户端的IP地址,但是很遗憾,小编尝试过各种方法,都没有办法解决,在网上游荡了半天,获取到的资料要么是不能运行,要么是获取到的127.0.0.1,小编也是很无奈,因此Jquery前端获取ip地址的思路被现实放弃

接下来,小编转换了思路,现在后台发展的非常成熟,看看能不能试试采用后端相关的Java代码来实现获取客户端主机IP地址的目标,对于这一块的知识,其实网上相关的内容也是比较少的,但是功夫不负有心人,四处飘荡的结果总算有了结果,让小编在网上找到了一段获取真实IP地址的方法,代码突下:

public Result  getHostIp(HttpServletRequest request){String ip = request.getHeader("x-forwarded-for");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {//获取代理中中的ipip = request.getHeader("PRoxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {//获取代理中中的ipip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {//非代理的情况获取ipip = request.getRemoteAddr();}if (ip!=null&&!"".equals(ip)){return new Result(true,"查询ip成功",ip);}else{return new Result(false,"查询ip失败");}}

没错是上面这一串代码,小编提供的是一个方法,大家将这一串代码放在一个类中就可以运行,但是小编在使用过程中也遇到过返回出来的0:0:0:0:0:0:0:1的情况,这是为什么呢?因为小编访问这个页面的时候使用的是和项目服务端的一样的电脑,所以得到的就是这个

当小编采用其他的主机访问该网址的时候得到的就是正确的IP地址,目标达成

Java如何获取客户端主机真实IP地址相关推荐

  1. JavaWeb 获取客户端的真实IP地址

    通常我们在JavaWeb中获取客户端IP地址只需要使用request.getRemoteAddr();方法即可 如果前端使用了Nginx等反向代理的话,我们使用request.getRemoteAdd ...

  2. Java获取请求客户端的真实IP地址

    整理网友的材料,最后有源码,亲测能解决所有java获取IP真实地址的问题 整理的这里: 1.链接1 2.链接2 JSP里,获取客户端的IP地址的方法是: request.getRemoteAddr() ...

  3. 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  4. Java 网络实例一(获取指定主机的IP地址、查看端口是否已使用、获取本机ip地址及主机名、获取远程文件大小)

    获取指定主机的IP地址 import java.net.InetAddress; import java.net.UnknownHostException;public class GetIP {pu ...

  5. 通过Request获取客户端的真实IP

    我们在做项目的时候经常需要获取客户端的真实ip去进行判断,为此搜索了相关文章,以下这个讲解的比较明白,直接拿来 https://blog.csdn.net/yin_jw/article/details ...

  6. 如何获取客户端的真实IP

    原文地址:http://blog.csdn.net/zhangyaoming2004/article/details/6792695 问题引出: <hr/> 在JSP里,获取客户端的IP地 ...

  7. PHP获取客户端的真实IP

    REMOTE_ADDR只能获取访问者本地连接中设置的IP,如中南民族大学校园网中自己设置的10.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址, 如果访问者使用代理服务器,将不 ...

  8. java 如何获取本机所有ip地址呢?

    转自: java 如何获取本机所有ip地址呢? ip地址简介: IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址. IP地址是IP协议提供的一种统一 ...

  9. 如何从Docker容器内部获取Docker主机的IP地址

    本文翻译自:How to get the IP address of the docker host from inside a docker container As the title says. ...

最新文章

  1. 【Linux】Linux简单操作之管道与重定向
  2. hdu4515 小模拟
  3. glassfish发布应用_GlassFish 4升级的构建,Gradle和嵌入式应用服务器
  4. Pentium 4处理器架构/微架构/流水线 (10) - NetBurst执行核详解 - 高速缓存/数据预取
  5. C#.Net工作笔记006---关于各种四舍五入_小数点保留第几位等操作_随时更新
  6. 创业阶段如何找客户_如何找创业合伙人
  7. VLD(Visual LeakDetector)内存泄露库的使用
  8. Android开发初体验——创建一个简单的APP
  9. 人际关系中的万有引力
  10. 迅雷 java_Java实现迅雷地址转成普通地址
  11. 以“实景+科幻三维建模渲染”,助力“实景三维中国建设”
  12. 写个简单的飞机游戏玩玩
  13. C语言冒泡法输出成绩与学号,C语言:根据成绩进行冒泡排序,学号也得跟着动,输出的结果...
  14. ButterKnife onclick点击事件没反应
  15. OpenGL之常用方法整理
  16. 通过iptable进行流量转发
  17. 烙铁头不沾锡原因分析,及烙铁头保养!
  18. UE4 动画过渡同步组(解决动画过渡不合理问题)
  19. 基于51单片机的全自动洗衣机系统设计-protues原理图、程序(转发)
  20. 论文笔记 | 深度学习图像数据增广方法研究

热门文章

  1. 聪明的人都有这些思维格局
  2. 前后端分离与不分离的区别
  3. 哇塞!终于可以不用开会员了!安利一款英语学习神器安卓和iOS都可以使用!
  4. 通过Netlify制作个人网站
  5. 使用crontab出现crontab: installing new crontab时什么意思
  6. Python接口测试说明及代码实例
  7. 《黑马头条》 ElectricSearch 分词器 联想词 MangoDB day08-平台管理[实战]作业
  8. 肯耐珂萨:2018KNX敬业度大数据白皮书(附下载)
  9. 【Java笔记】---Week06 常用类、正则表达式与集合
  10. tensorflow系列——读取tfrecord数据