Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java request.getRemoteHost()是否返回浏览器主机的IP? 你好现在是时候了_Java_Jsp_Servlets_Ip Address - Fatal编程技术网

Java request.getRemoteHost()是否返回浏览器主机的IP? 你好现在是时候了

Java request.getRemoteHost()是否返回浏览器主机的IP? 你好现在是时候了,java,jsp,servlets,ip-address,Java,Jsp,Servlets,Ip Address,在上面的JSP代码中,我认为request.getRemoteHost()将返回浏览器主机的ip地址。但是,它返回类似于:0:0:0:0:0:0:0:1。有什么问题吗?它确实是运行浏览器的机器的IP,因此它会返回127.0.0.1,或者在您的情况下返回::1,它是IPv6中的本地主机。它确实是运行浏览器的机器的IP,因此它会返回127.0.0.1,或者在您的情况下返回::1,它是IPv6中的本地主机。getRemoteHost() 返回发送请求的客户端的完全限定名称 getRemoteAddr(

在上面的JSP代码中,我认为
request.getRemoteHost()
将返回浏览器主机的ip地址。但是,它返回类似于:
0:0:0:0:0:0:0:1
。有什么问题吗?

它确实是运行浏览器的机器的IP,因此它会返回
127.0.0.1
,或者在您的情况下返回
::1
,它是IPv6中的本地主机。

它确实是运行浏览器的机器的IP,因此它会返回
127.0.0.1
,或者在您的情况下返回
::1
,它是IPv6中的本地主机。

getRemoteHost() 返回发送请求的客户端的完全限定名称

getRemoteAddr() 返回发送请求的客户端的Internet协议(IP)地址

request.getRemoteAddr()
返回公司的IP地址,而
request.getRemoteHost()
尝试取消主机名。如果主机名为空,则它会尝试检索IP地址,就像getRemoteAddr()的工作方式一样

getRemoteHost() 返回发送请求的客户端的完全限定名称

getRemoteAddr() 返回发送请求的客户端的Internet协议(IP)地址

request.getRemoteAddr()
返回公司的IP地址,而
request.getRemoteHost()
尝试取消主机名。如果主机名为空,则它会尝试检索IP地址,就像getRemoteAddr()的工作方式一样


另外,请注意,
request.getRemoteHost()
将返回最后一个代理或客户端的地址。如果您从Apache HTTP代理对您的Web应用程序的请求,它可能会报告Apache服务器的地址,如果它与您的Web应用程序位于同一服务器上,则可以报告为本地主机,例如127.0.0.1或::1。是的,其中一些代理添加了“X-Forwarded-For”头,因此我通常首先检查该头,然后,作为最后一个调用getRemoteHost()的方法,请注意
request.getRemoteHost()
将返回最后一个代理或客户端的地址。如果您从Apache HTTP代理对您的Web应用程序的请求,它可能会报告Apache服务器的地址,如果它与您的Web应用程序位于同一服务器上,则可以报告为本地主机,例如127.0.0.1或::1。是的,其中一些代理添加了“X-Forwarded-For”头,因此我通常首先检查该头,然后,作为最后手段,调用getRemoteHost()
<HTML>
<BODY>
<%
    // This scriptlet declares and initializes "date"
    System.out.println( "Evaluating date now" );
    java.util.Date date = new java.util.Date();
%>
Hello!  The time is now
<%
    out.println( date );
    out.println( "<BR>Your machine's address is " );
    out.println( request.getRemoteHost());
%>
</BODY>
</HTML>