在java程序中获取浏览者真实的公网ip地址,程序健壮性极好,代码如下:

    public void downLoad(HttpServletRequest request) {String ip = null;// 处理代理情况ip = request.getHeader("x-forwarded-for");if (StringUtils.isBlank(ip)|| "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (StringUtils.isBlank(ip)|| "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (StringUtils.isBlank(ip)|| "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();if (ip.equals("127.0.0.1")) {InetAddress inet = null;// 根据网卡取本机配置的IPtry {inet = InetAddress.getLocalHost();//idea-PC/192.168.212.144} catch (UnknownHostException e) {e.printStackTrace();}ip = inet.getHostAddress();//192.168.212.144}}// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割,多级代理的时候会得到多个以,分割的ip,//这时候第一个是真实的客户端ipif (ip != null && ip.length() > 15) { // "***.***.***.***".length()if (ip.indexOf(",") > 0) {ip = ip.substring(0, ip.indexOf(","));}}System.out.println(ip);}

java获取请求者真实的公网ip地址相关推荐

  1. 使用Java获取发送请求的电脑的IP地址

    介绍 客户端所有的请求信息都可以通过HttpServletRequest获得,获取客户端ip可以通过getRemoteAddr()获取. 但是如果客户端是通过代理访问我们的服务器,那么getRemot ...

  2. java获取dns_Java 根据网址查询DNS/IP地址的方法

    说明: 本文不涉及底层的 DNS 协议, 直接使用Java平台提供的API进行操作. DNS也就是 Domain Name Service,即 域名服务. 我们知道, Java中与网址有关的类包括 j ...

  3. java 获取linux mac_java在linux获得ip地址和mac

    以前在linux下获取ip和mac一般使用jni,调用linux的ioctl.当然也有使用shell获取的. 发现在jdk 6下已经实现了,java.net.NetworkInterface上面有静态 ...

  4. 你会在终端下快速获取公网 IP 地址吗,学会这些技巧后你就游刃有余了!

    在排除网络问题,建立新连接或配置防火墙时,了解设备的 IP 地址很重要. IP 地址可以分为两类,公用和私有(专用).公用 IP 是唯一的 IP 地址,可以从 Internet 访问.专用 IP 地址 ...

  5. linux命令获取本机外网公网ip地址,java程序获取本机外网公网ip地址 代码

    linux命令获取本机外网ip地址 1 直接返回ip 最快 稳定 curl ns1.dnspod.net:6666 curl whatismyip.akamai.com curl icanhazip. ...

  6. Java获取(外网)网络IP和本机真实IP Java获取真实IP Java获取真实ip Java获取本机ip Java获取 本机真实ip

    /*** IP地址相关工具类*/ public class IpUtil {private static final Logger logger = LoggerFactory.getLogger(I ...

  7. java 获取ip地址 公网,java获取公网ip地址操作

    获取公网ip地址操作 import javax.servlet.http.HttpServletRequest; /** * * 获取公网ip地址操作 * @ClassNmae:NewClass * ...

  8. java什么是网络接口_java 网络编程 -- IP地址的表示与网络接口信息的获取(InetAddress和NetworkInterface)...

    使用java进行网络程序的开发,可以说是一件令人愉悦的事情,对于用惯了C++网络接口编程的人来说,当他们首次使用Java开发网络应用程序,会发现java开发网络应用是如此的简单,甚至仅用几分钟时间,您 ...

  9. SRT编码器传输获取公网IP地址3种解决方案

    SRT是时下最热门的互联网传输协议,具备低延时.稳定可靠传输的优势特性,可广泛应用于远程制作.远程监看.异地互动等需要互联网远程传输场景. SRT 是点对点传输协议,由于需要穿透互联网,所以至少需要有 ...

最新文章

  1. 深入探究Java中equals()和==的区别是什么
  2. 002_centos7上安装mysql8
  3. Hibernate 一级缓存,二级缓存,查询缓存
  4. 【Elasticsearch】es 面试题 积累
  5. Wmware安装Centos7教程
  6. java集合框架源代码_面试必备——Java集合框架
  7. 怎么做301永久重定向
  8. java retainall源码,Java CopyOnWriteArraySet retainAll()用法及代码示例
  9. cmd复制文件到其他目录
  10. 使用Simple Allow Copy插件在网页内复制文字
  11. 人脸识别(81关键点)经典开源核心代码
  12. 3d可视化建模产品三维展示平台应用广
  13. 资源分享——免费的高端PPT模板网址
  14. 杰理之 高低速(HSB/LSB)时钟硬件模块【篇】
  15. anaconda linux环境变量,配置anaconda环境(linux)
  16. APP安装与卸载测试点
  17. 人体运动检测与跟踪(转)
  18. web前端框架——Vue的特性
  19. [CVE-2020-9496]Apache Ofbiz RCE
  20. [原创方法!] 如何实现全自动登录各大网站? Cookie格式 、油猴脚本基础 解决Github邮箱验证,持久登录,免验证码

热门文章

  1. php对字符串处理,PHP字符串处理函数总结
  2. php获取照片的拍摄地点,通过照片查找拍摄地址的方法
  3. 【建议收藏】一文简述半导体封装技术演变史
  4. Oracle 交集,差集,并集运算的学习
  5. 【Android】不同android平台的适配(权限和定位)
  6. stty icanon
  7. android 5.1 sdk版本,【SDK版本更新】Android SDK 5.1.0
  8. 系统设计目标(一):如何提升系统性能?
  9. win7使用VMware安装win7虚拟机上网设置
  10. 用vue PHP实现海报设计功能,有关vue html2canvas生成海报功能的实现