request获取ip *** 获取请求的ip ***

牵着乌龟去散步 地址 22

大家好,request获取ip *** 相信很多的网友都不是很明白,包括获取请求的ip *** 也是一样,不过没有关系,接下来就来为大家分享关于request获取ip *** 和获取请求的ip *** 的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

  1. j *** a servlet获取客户端IP
  2. request.getremoteaddr()获取用户真实IP报空指针异常
  3. ASP.NET 怎么获取客户端的外网IP *** ,急~
  4. asp.net如何获取IP
  5. 如何获取用户的真实IP

一、j *** a servlet获取客户端IP

在 *** P里,获取客户端的IP *** 的 *** 是:request.getRemoteAddr(),这种 *** 在大部分情况下都是有效的。但是在通过了 Apache,Squid等反向 *** 软件就不能获取到客户端的真实IP *** 了。如果使用了反向 *** 软件,用 request.getRemoteAddr() *** 获取的IP *** 是:127.0.0.1或 1 *** .168.1.110,而并不是客户端的真实IP。

request.getRemoteAddr()的 *** 获取的IP实际上是 *** 服务器的 *** ,并不是客户端的IP *** 。

于是可得出获得客户端真实IP *** 的 *** 一:

public String getRemortIP(HttpServletRequest request){

if(request.getHeader("x-forwarded-for")== null){

ret *** n request.getRemoteAddr();

ret *** n request.getHeader("x-forwarded-for");

你可以写一个Filter配置在web.xml中让服务器启动的时候就开始 *** 直到服务器停止!

二、request.getremoteaddr()获取用户真实IP报空指针异常

1、这种NullPointException情况一般发生在request请求已经完成或者结束后。原因是,服务器在获取远程IP *** 时,需要向远端发送一个 *** 作来获取该 *** ,但此时因为链接已经请求完成或关闭或 *** 原因中断,无法找到,所以会报出空指针异常。在正常请求 *** 中不会出现此情景,我遇到的情景是,我提前结束了请求,然后在异步线程中执行该 *** 来获取该 *** ,会报空指针异常。详情可以看tomcat下的http11包中Http11AprProcessor类。应该是 *** 报出的异常

2、我也是遇到后,自己分析的,能力有限,希望对你有用。

三、ASP.NET 怎么获取客户端的外网IP *** ,急~

1、在ASP中使用 Request.ServerVariables("REMOTE_ADDR")来取得客户端的IP *** ,但如果客户端是使用 *** 服务器来访问,那取到的就是 *** 服务器的IP *** ,而不是真正的客户端IP *** 。

2、要想透过 *** 服务器取得客户端的真实IP *** ,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR")来读取。

3、不过要注意的事,并不是每个 *** 服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR")来读取客户端的真实 IP,有些用此 *** 读取到的仍然是 *** 服务器的IP。

4、还有一点需要注意的是:如果客户端没有通过 *** 服务器来访问,那么用 Request.ServerVariables("HTTP_X_FORWARDED_FOR")取到的值将是空的。因此,如果要在程序中使用此 *** ,可以这样处理:

5、userip= Request.ServerVariables("HTTP_X_FORWARDED_FOR")

6、If userip="" Then userip= Request.ServerVariables("REMOTE_ADDR")

7、HttpContext.C *** rent.Request.UserHostAddress;

8、HttpContext.C *** rent.Request.ServerVariables["REMOTE_ADDR"];

9、string strHostName= System.Net.Dns.GetHostName();

10、string clientIPAddress= System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();

11、HttpContext.C *** rent.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

12、var ip='<!--#echo var="REMOTE_ADDR"-->';

13、alert("Yo *** IP address is"+ip);

14、 obj= new ActiveXObject("rcbdyctl.Setting");

15、来自印度的MCT Maulik Patel提供了一种服务端的解决方案,很好:

16、if(Context.Request.ServerVariables["HTTP_VIA"]!=null)//服务器, using proxy

17、 ip=Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();// Ret *** n real client IP.

18、else//如果没有使用 *** 服务器或者得不到客户端的ip not using proxy or can't get the Client IP

19、 ip=Context.Request.ServerVariables["REMOTE_ADDR"].ToString();//While it can't get the Client IP, it will ret *** n proxy IP.

20、有些客户端会因为“header_access deny”的安全设置而不发给我们Ip

四、asp.net如何获取IP

1、在ASP中使用 Request.ServerVariables("REMOTE_ADDR")来取得客户端的IP *** ,但如果客户端是使用 *** 服务器来访问,那取到的就是 *** 服务器的IP *** ,而不是真正的客户端IP *** 。

2、要想透过 *** 服务器取得客户端的真实IP *** ,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR")来读取。

3、不过要注意的事,并不是每个 *** 服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR")来读取客户端的真实 IP,有些用此 *** 读取到的仍然是 *** 服务器的IP。

4、还有一点需要注意的是:如果客户端没有通过 *** 服务器来访问,那么用 Request.ServerVariables("HTTP_X_FORWARDED_FOR")取到的值将是空的。因此,如果要在程序中使用此 *** ,可以这样处理:

5、userip= Request.ServerVariables("HTTP_X_FORWARDED_FOR")

6、If userip="" Then userip= Request.ServerVariables("REMOTE_ADDR")

7、HttpContext.C *** rent.Request.UserHostAddress;

8、HttpContext.C *** rent.Request.ServerVariables["REMOTE_ADDR"];

9、string strHostName= System.Net.Dns.GetHostName();

10、string clientIPAddress= System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();

11、HttpContext.C *** rent.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

12、var ip='<!--#echo var="REMOTE_ADDR"-->';

13、alert("Yo *** IP address is"+ip);

14、 obj= new ActiveXObject("rcbdyctl.Setting");

15、来自印度的MCT Maulik Patel提供了一种服务端的解决方案,很好:

16、if(Context.Request.ServerVariables["HTTP_VIA"]!=null)//服务器, using proxy

17、 ip=Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();// Ret *** n real client IP.

18、else//如果没有使用 *** 服务器或者得不到客户端的ip not using proxy or can't get the Client IP

19、 ip=Context.Request.ServerVariables["REMOTE_ADDR"].ToString();//While it can't get the Client IP, it will ret *** n proxy IP.

20、有些客户端会因为“header_access deny”的安全设置而不发给我们Ip

五、如何获取用户的真实IP

在 *** P里,获取客户端的IP *** 的 *** 是:request.getRemoteAddr(),这种 *** 在大部分情况下都是有效的。但是在通过了 Apache,Nagix等反向 *** 软件就不能获取到客户端的真实IP *** 了。如果使用了反向 *** 软件,用 request.getRemoteAddr() *** 获取的IP *** 是:127.0.0.1或 1 *** .168.1.110,而并不是客户端的真实IP。

经过 *** 以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的 *** 返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以 *** 原有的客户端 IP *** 和原来客户端请求的服务器 *** 。

举例来说,当我们访问口碑网首页hangzhou.jsp时,其实并不是我们浏览器真正访问到了服务器上的hangzhou.jsp文件,而是先由 *** 服务器Nagix去访问ha *** zhou.jsp, *** 服务器再将访问到的结果返回给我们的浏览器,因为是 *** 服务器去访问hangzhou.jsp的,所以hangzhou.jsp中通过 request.getRemoteAddr()的 *** 获取的IP实际上是 *** 服务器的 *** ,并不是客户端的IP *** 。

获得客户端真实IP *** 的 *** 一:

public String getRemortIP(HttpServletRequest request){

if(request.getHeader("x-forwarded-for")== null){

request获取ip地址 获取请求的ip地址-第1张图片-

ret *** n request.getRemoteAddr();

ret *** n request.getHeader("x-forwarded-for");

public String getIpAddr(HttpServletRequest request){

String ip= request.getHeader("x-forwarded-for");

if(ip== null|| ip.length()== 0||"unknown".equalsI *** oreCase(ip)){

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

if(ip== null|| ip.length()== 0||"unknown".equalsI *** oreCase(ip)){

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

if(ip== null|| ip.length()== 0||"unknown".equalsI *** oreCase(ip)){

request获取ip *** 的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于获取请求的ip *** 、request获取ip *** 的信息别忘了在本站进行查找哦。

标签: 获取 *** 请求 request

抱歉,评论功能暂时关闭!