21xrx.com
2024-09-17 03:36:34 Tuesday
登录
文章检索 我的文章 写文章
Java如何获取请求头中的Token和请求方IP
2023-06-14 23:54:41 深夜i     --     --
Java 请求头 Token IP 获取

在Java开发中,获取请求头中的Token和请求方IP是非常常见的需求。那么该如何实现呢?

首先获取请求头中的Token。在Java中,我们可以通过HttpServletRequest对象来获取请求头。具体代码如下:

String token = request.getHeader("Authorization");

其中,Authorization是请求头中的键名,而token就是对应的值。

接下来是获取请求方IP。同样地,我们需要借助HttpServletRequest对象。具体代码如下:

String ip = request.getRemoteAddr();

其中,getRemoteAddr()方法会返回请求方IP地址。

当然,在某些情况下,请求方的IP地址可能会被反向代理服务器代理掉,此时我们需要借助X-Forwarded-For这个请求头来获取真实IP地址。具体代码如下:

String ip = request.getHeader("X-Forwarded-For");

if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

  ip = request.getHeader("Proxy-Client-IP");

}

if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

  ip = request.getHeader("WL-Proxy-Client-IP");

}

if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

  ip = request.getRemoteAddr();

}

在这段代码中,我们先通过X-Forwarded-For请求头获取IP地址。如果无法获取,则依次尝试Proxy-Client-IP和WL-Proxy-Client-IP这两个请求头,最终如果还是无法获取,则返回getRemoteAddr()方法获取到的IP地址。

综上所述,获取请求头中的Token和请求方IP都是比较简单的操作,只需要借助HttpServletRequest对象即可实现。对于开发者来说,熟练掌握这两个操作是很有帮助的。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复