如何获取客户端ip

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取客户端ip相关的知识,希望对你有一定的参考价值。

参考技术A     取客户端的IP地址的方法通常是request.getRemoteAddr(),这种方法在大部分情况下都是有效的。如果使用了反向代理软件(Apache,Squid等),用request.getRemoteAddr()方法获取的IP地址实际上是代理服务器的地址。
    不过大部分HTTP代理或负载均衡服务器会将X-Forwarded-For作为存放客户端最原始的IP地址的HTTP请求头字段,如果经过多级反向代理的话,IP将会追加在其后并以逗号隔开,X-Forwarded-For的值并不止一个,取X-Forwarded-For中第一个非unknown的有效IP字符串即可。
    经过apache http转发后一般会加上Proxy-Client-IP请求头,WL-Proxy-Client-IP是它的weblogic插件加上的请求头,有些代理服务器会加上此请求头HTTP_CLIENT_IP,nginx代理一般会加上请求头X-Real-IP。获取方法参考下面:

如何获取客户端 IP 地址

【中文标题】如何获取客户端 IP 地址【英文标题】:How to get client IP address(es) 【发布时间】:2012-03-14 04:31:58 【问题描述】:

我们有一个部署在银行总部的 asp.net 应用程序。银行的员工是此应用程序的消费者。

银行员工通常使用通过代理服务器连接到互联网的计算机访问此应用程序。

出于审核目的,当他们登录应用程序时,我们需要将所有(至少一个)IP 地址分配给他们的 LAN 接口。

我知道有一些服务器变量提供客户端的 IP,但它们只给我们代理服务器的 IP(外部 IP)。

【问题讨论】:

Get Client IP using just Javascript?的可能重复 不是那个问题是关于公共 IP 地址(外部 IP 地址)我正在寻找内部机器 IP 地址(LAN) 那里有一个链接显示了一些想法:gnucitizen.org/blog/javascript-address-info 但是,它并非在所有浏览器中都同样有效。您通常无法从 Javascript 访问该操作系统级别的信息。 感谢@Joe:一篇内容丰富的文章。 【参考方案1】:

这取决于代理,但我相信标准是将原始客户端 IP 放在名为 HTTP_X_FORWARD_FOR 的服务器变量下。有时使用其他的 HTTP_X_FORWARDED 和 HTTP_CLIENT_IP。

【讨论】:

***.com/questions/4946538/…

以上是关于如何获取客户端ip的主要内容,如果未能解决你的问题,请参考以下文章

如何获取web客户端IP地址

java如何获取用户真实的ip

如何获取网站用户的真实IP

Java Web如何获取客户端的Hostname?

如何获取伪装ip下的真实ip地址

如何获取浏览器当前的ip