如何获取客户端的IP

获取客户端真实IP 这里主要备忘下,如果服务器处于端口回流(hairpin NAT),keepalived,nginx之后,如何取得客户端的外网IP。 阅读详情

近期的一个项目任务,在页面列表中展示获取客户端的IP的地址,可能这是一个很常见的功能,但有些时候,常见的东西才真的值得去思考。

在java web 编程中,熟悉servlet的人都就知道,servlet API 中request 对象提供了方法可以获取客户端浏览器的IP,为什么说是客户端浏览器的IP呢,因为在这里,当我们打开浏览器去访问一个网站时,很多时候是启用了代理服务器去访问应用服务器程序的。

使用requestrequest.getRemoteAddr(),获取客户端IP地址

或者使用 request.getRemoteHost() ,获取客户端主机名

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

我的方法如下:

获得客户端真实IP地址的方法一:

public String getRemortIP(HttpServletRequest request) {
       if (request.getHeader("x-forwarded-for") == null) {
           return request.getRemoteAddr();
       }
       return request.getHeader("x-forwarded-for");
}

获得客户端真实IP地址的方法二:

public 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.getRemoteAddr();
       }
       return ip;
}

注意:如何"x-forwarded-for"保存了多个值,则第一个非unknown的为有效IP字符串,即它是客户端浏览器访问的真实IP地址。



获取客户端IP以及代理IP https://blog.youkuaiyun.com/xianhenyuan/article/details/92668464 阅读详情

相关推荐

复现HumanMAC(HumanMAC: Masked Motion Completion for Human Motion Prediction)

Human3.6M和HumanEva-I都放到data目录下(记得将data_multi_modal-20250320T022408Z-001.zip和humaneva_multi_modal-20250320T022412Z-001.zip解压缩并且分别重命名为data_multi_modal和humaneva_multi_modal)。生成的gif存放在inference目录下zero_shot_<INDEX>下的out目录下。新建一个data目录,将

qq_52643100的博客 831

【全方位解析】如何获取客户端/服务端真实 IP

一般的客户端(例如浏览器)发送HTTP请求是没有X-Forwarded-For头的,当请求到达第一个代理服务器时,代理服务器会加上X-Forwarded-For请求头,并将值设为客户端的IP地址(也就是最左边第一个值),后面如果还有多个代理,会依次将IP追加到X-Forwarded-For头最右边,最终请求到达Web应用服务器,应用通过获取X-Forwarded-For头取左边第一个IP即为客户端真实IP。这种方式能获取到连接服务器的客户端IP,在中间没有代理的情况下,的确是最简单有效的方式。

ReturnTmp的博客 5465

四、zabbix7.0推送告警至钉钉webhook机器人

2、钉钉的webhook是有安全要求的,我采用的是ip的方式,我的zabbix服务器在内网,我的网络出口有多个固定公网ip,所以这样做省事,其他方式也可以你自己考虑。下图是webhook机器人的配置。这一步,参数里面默认的跟我下图里不一样的,按我下图修改。Key是你的webhook机器人地址里的access_token=后面的内容。整个逻辑就是告警动作匹配告警媒介与用户,然后进行告警的发送。1、zabbix服务器能够访问钉钉的服务器,具体说是能访问。二、zabbix7配置报警媒介以及消息模板配置。

m0_74823715的博客 1293

获取本地IP地址信息,请求地址,请求的操作系统信息 ,浏览器信息

程序运行效果图,如果这种有你需要的信息,不妨随着小编一起看下去吧! (1)接口 在浏览器上访问 localhost:8089/test/cs @RequestMapping("/cs") public String cs(HttpServletRequest request) { Map<String, String> map = CommenUtil.getClientInfo(request); System.ou.

Soup's Blog 2781

Python结合海康威视工业相机SDK实现高效图像采集与处理

本文详细介绍了如何使用Python结合海康威视工业相机SDK实现高效的图像采集与处理。内容涵盖从环境搭建、SDK核心模块理解,到完整的图像采集流程拆解,包括设备枚举、参数设置、主动取流以及关键的像素格式转换。同时,文章深入探讨了触发模式、参数控制等高级应用,并提供了性能优化建议和可复用的相机操作类封装,帮助开发者快速构建稳定的机器视觉应用。

weixin_29043895的博客 349

vue2 - elementUI表格table树形结构复选框勾选父子联动示例,el-table树状表格tree复选框checkbox多选框全选/反选取消children(当子级全选中,父级自动勾选)

vue2,elementui,el-table树状表格多选,树形结构结合多选框使用,实现单选父子联动全选反选,勾选联动父级勾选,表格多选check父子联动,table表格children如何嵌入复选框,el-table使用多选框与树形数据写一个有半选全选功能的表格,el-table树形表格实现复选框多选效果,表格树状结构多选,每一个row都可以选中并且联动全选按钮,table选父带子选子带父,树形数据与懒加载,Table表格树形结构多选框选中父级时会选中子级,elementUI表格里树形结构嵌套复选框全选全

✅ 精选推荐文章 1万+

浏览器端获取局域网IP地址,本机的MAC,以及机器名

只针对IE且客户端的IE允许AcitiveX运行 code: &lt;html&gt; &lt;head&gt; &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" i

weixin_33949359的博客 501

【华为OD机试】创建二叉树(python, java, c++, js)

请按下列描达构建一颗二叉树,并返回该树的根节点: 1、先创建值为-1的根结点,根节点在第0层; 2、然后根据operations依次添加节点: operations[i] = [height, index] 表示对第 height 层的第index 个节点node, 添加值为i 的子节点: 若node 无「左子节点」。则添加左子节点; 若node 有「左子节点」但无「右子节点」,则添加右子节点: 否则不作任何处理。 height、index 均从0开始计数;index 指所在层的创建顺序。

A_D_I_D_A_S的博客 188

浏览器获取本地IP地址(不是浏览器的url地址的ip)

Anonymize local IPs exposed by WebRTC 状态改为disable。

qq_15698053的博客 2053

华为OD机试2025C卷 - CPU调度策略 (C++ & Python & JAVA & JS & GO)

华为OD机试 2025C卷 CPU调度策略,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1296

YOLOv11-Pose部署RK3588实战:人体姿态识别精度翻倍,边缘推理速度突破瓶颈

本教程从YOLOv11-pose模型的姿态识别训练,到RK3588的边缘量化部署,为你打造了一套“高精度+高实时性+低成本”的人体姿态分析解决方案。无论是健身动作纠正、智能安防行为检测,还是工业人员姿态监控,这套技术都能直接复用——你只需替换数据集与业务逻辑,即可快速落地专属的边缘AI姿态识别系统。如果你在实践中遇到任何卡点,欢迎随时交流。记住,人体姿态识别的价值在于“关键点准、推理快、部署易”,而这三者的平衡,正是你通过本教程能掌握的核心能力。

m0_64661770的博客 138

SpringBoot 获取客户端 ip

/** * 获取客户端ip地址 * @param request * @return */ public static String getCliectIp(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); ...

:) 7097

拿下华为性格测试!

华为性格测试指南

weixin_41171614的博客 5276

springboot 获取客户端ip_springboot 获取客户端IP地址方法

在使用springboot时,需要获取访问客户端的IP地址,//获取客户端IP地址private String getIpAddress() {String ip = request.getHeader("x-forwarded-for");if(ip == null || ip.length() == 0 || "unknow".equalsIgnoreCase(ip)) {ip = reque...

weixin_39637545的博客 1506

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

springboot 获取客户端IP地址方法

在使用springboot时,需要获取访问客户端的IP地址, //获取客户端IP地址 private String getIpAddress() { String ip = request.getHeader("x-forwarded-for"); if(ip == null || ip.length() == 0 || "unknow".equalsIgnoreCase(ip)) ...

jia.huang的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

PHP获取客户端IP,根据IP获取省份

获取客户端ip /** * 获取登录Ip * @return mixed */ function getip() { $ip = false; if(!empty( $_SERVER ["HTTP_CLIENT_IP"])) { $ip = $_SERVER ["HTTP_CLIENT_IP"]; } if (!empty( $_SER...

zq328525的博客 485

Socket——获取客户端IP

获取客户端IP地址的代码 //获取客户端IP InetAddress ia= socket.getInetAddress(); String ip=ia.getHostAddress(); System.out.println("此客户端的IP为"+ip); LoginThread 类 package tcpscoket_obj_29; import java.io.InputStream; import java.io.ObjectInputStream; import ja

斯特凡今天也很帅的博客 5614

PHP 如何获取客户端的IP地址

知识目录 /** * 获取客户端IP地址 * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字 * @param boolean $adv 是否进行高级模式获取(有可能被伪装) * @return mixed */ public static function getClientIp($type = 0, $adv = true) { $type...

苦修 1526

获取客户端ip

核心在获取HttpServletRequest 第一种方法: 在方法上面的参数列表里打上HttpServletRequest @RequestMapping(value="/index.html",method=RequestMethod.GET) public String index(HttpServletRequest req) { String remoteAddr = req.getRemoteAddr(); Syste...

weixin_36098377的博客 315

Python获取客户端IP地址

获取客户端IP地址 if 'HTTP_X_FORWARDED_FOR' in request.META: ipaddress = request.META['HTTP_X_FORWARDED_FOR'] else: ipaddress = request.META['REMOTE_ADDR']

LeslieLiangZ的博客 8541

js获取客户端本地ip

使用js获取客户端本地ip,不需要额外引入别的文件 【注:若IE浏览器不进行安全设置,IE浏览器会默认拦截ActiveX控件的使用,将不会返回客户端的IP地址】 下边的代码使用于通用浏览器,但是IE浏览器必须去设置ActiveX控件。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U...

lixiaoyan93的博客 1877

Java WebService获取客户端IP

step 1 获取WebServiceContext: //方法一 @Resource private WebServiceContext context ;//此方法可能为null //方法二 private WebServiceContext context = new org.apache.cxf.jaxws.context.WebServiceContext...

tmaczt的博客 557

.net 获取客户端Ip

随着网络的广泛发展,有时候到处要用到获取Ip的方法,下面是一个比较好的获取客户端Ip的方法,希望对您有用。 public static string GetIP()         {             //如果客户端使用了代理服务器,则利用HTTP_X_FORWARDED_FOR找到客户端IP地址             string userHostAddress = Htt

金双林 1355

java获取客户端IP的方法

java获取客户端IP的方法 源代码下载地址:http://www.zuidaima.com/share/1550463687150592.htm

springmvc_springdata的专栏 1万+
上一篇: 理解HTTP协议
下一篇: 自动化测试入门
longerhost
博客等级 码龄15年 16粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值