java获取网络请求ip
程序员文章站
2022-04-25 17:42:24
...
/** * 获取当前网络请求ip * @param request * @return */ public String getIpAddr(HttpServletRequest request) { String ipAddress = request.getHeader("x-forwarded-for"); if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("Proxy-Client-IP"); } if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("WL-Proxy-Client-IP"); } if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getRemoteAddr(); if (ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")) { //根据网卡取本机配置的IP InetAddress inet = null; try { inet = InetAddress.getLocalHost(); } catch (UnknownHostException e) { e.printStackTrace(); } ipAddress = inet.getHostAddress(); } } //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 if (ipAddress != null && ipAddress.length() > 15) { //"***.***.***.***".length() = 15 String[] ips = ipAddress.split(","); if (ips != null && ips.length > 0) { ipAddress = StrUtil.strnull(ips[0]); } } return ipAddress; }
上一篇: Java线程安全计数器的简单代码示例
下一篇: 最好的8个Java RESTful框架
推荐阅读
-
java通过ip获取客户端Mac地址的小例子
-
java 获取request中的请求参数代码详解
-
利用Java如何获取IP与机器名方法示例
-
java后台发起get请求获取响应数据
-
PHP获取ip对应地区和使用网络类型的方法
-
Java 获取网络302重定向URL的方法
-
微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
-
java通过HttpServletRequest获取post请求中的body内容的方法
-
Java 通过HttpRequest获取请求用户真实IP地址
-
Java中使用HttpRequest获取用户真实IP地址