通过request对象获取请求IP

这篇具有很好参考价值的文章主要介绍了通过request对象获取请求IP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用户的真实IP不能直接使用request.getRemoteAddr(),这是因为可能会使用一些代理软件,这样ip获取就不准确了,此外我们如果使用了多级(LVS/Nginx)反向代理的话,ip需要从X-Forwarded-For中获得第一个非unknown的IP才是用户的有效ip。文章来源地址https://www.toymoban.com/news/detail-678966.html

class IpUtils {
	 public static String getIpAddr(HttpServletRequest request) {
	        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.getHeader("HTTP_CLIENT_IP");
	        }
	        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
	            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
	        }
	        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
	            ip = request.getRemoteAddr();
	        }
	        return ip;
	    }
}

到了这里,关于通过request对象获取请求IP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java获取request请求头内容

    注意一下 request 和 httpServletRequest 的类型

    2024年02月12日
    浏览(33)
  • 接口自动化【一】(抓取后台登录接口+postman请求通过+requests请求通过+json字典区别)

    文章目录 前言 一、requests库的使用 二、json和字典的区别 三、后端登录接口-请求数据生成 四、接口自动化-对应电商项目中的功能 五、来自postman的代码-后端登录 总结 记录:json和字典的区别,json和字段的相互转化;postman发送请求与Python中代码发送请求的区别。 安装: p

    2024年02月01日
    浏览(43)
  • Javaweb——Request通用方式获取请求参数

    在旧的请求参数的获取方式当中,需要对两种不同的请求方式做两份不同的代码逻辑,现在就是要统一操作,比如在post里面调用get的代码   如下图的操作 先获取请求方式,对于不同的方式都先把请求参数获取出来,这里request还完成了对字符串的解析,对和=进行切割 之后将

    2024年02月13日
    浏览(39)
  • SpringBoot获取Request请求的三种方式

    Request对象包含了请求的各种信息,比如请求方法、请求URL、请求参数、请求内容等等,这些信息可以供服务器进行处理和响应。那么在SpringBoot中,怎么才能获取到Request对象? 本文将介绍三种方法,并提示例参考。 一、直接在Controller方法参数上注入HttpServletRequest 这是最常用

    2024年02月04日
    浏览(47)
  • 06-HTTP-Request获取请求头数据方法

    1、getHeader()方法用于获取指定名称的HTTP请求头的值。 getHeader()方法的参数为一个字符串,表示要获取的HTTP请求头的名称。方法返回一个字符串,表示该HTTP请求头的值。如果指定名称的HTTP请求头不存在,则返回null。 常见的HTTP请求头有: Accept:指定客户端可以接受哪些类型

    2024年02月16日
    浏览(35)
  • 【Java 进阶篇】Java Request 获取请求体数据详解

    在Java Web开发中,获取HTTP请求的请求体数据是一项常见任务。HTTP请求的请求体通常包含了客户端提交的数据,例如表单数据、JSON、XML等。在Java中,可以使用 HttpServletRequest 对象来获取HTTP请求的请求体数据。本文将详细解释如何使用Java获取HTTP请求的请求体数据,并提供示例

    2024年02月03日
    浏览(29)
  • selenium自动获取cookies用于requests做接口请求爬虫

    目录 一、思想 二、代码          有关爬虫一些报错解决,或是爬虫工具的使用及其他问题的,可以看看我的爬虫专栏:博主_zkkkkkkkkkkkkk的爬虫专栏 一、思想         selenium可以用来模拟用户操作的python第三方包,而requests则是用来做接口请求。两者一结合,可能在某些

    2024年02月16日
    浏览(30)
  • postman的Pre-request Script获取请求体参数

    一、请求体为raw 二、请求体为x-www-form-urlencoded 三、请求体为form-data

    2024年02月12日
    浏览(47)
  • 【Java 进阶篇】Java Request 获取请求参数的通用方式详解

    在Java Web开发中,获取HTTP请求的参数是一项基本任务。请求参数可以包含在URL中,也可以包含在请求体中,例如表单提交时的参数。在Java中,可以使用 HttpServletRequest 对象来获取HTTP请求的参数。本文将详细解释如何使用Java获取HTTP请求的参数,包括通用的方式以及示例代码。

    2024年02月05日
    浏览(34)
  • 使用Flask.Request的方法和属性,获取get和post请求参数(二)

    在Python发送Post、Get等请求时,我们使用到requests库。Flask中有一个request库,有其特有的一些方法和属性,注意跟requests不是同一个。 用于服务端获取客户端请求数据。注意:是未经任何处理的原始数据而不管内容类型,如果数据时json的,则取得是json字符串,排序和请求参数

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包