2013-07-01 165 views
1

我想下面的代码,让我的IP地址在JSP页面中:request.getRemoteAddr()返回0:0:0:0:0:0:0:1在JSP页面

<% 
     out.println("Your IP address is " + request.getRemoteAddr()); 
%> 

这将打印0:0:0:0:0:0:0:1,而不是我的IP地址。这是什么被认为是?为什么不显示我的IP地址?

感谢

+1

尝试增加'-Djava .net.preferIPv4Stack = true'到您的servlet容器启动脚本 – Reimeus

+0

更好的回答:http://stackoverflow.com/questions/17964297/using-request-getremoteaddr-returns-00000001 –

回答

1

这就是你的IP地址,而不是IPv4的(XX.XX.XX.XX),但IPv6的一个(XX:XX:XX:XX:XX:XX:XX:XX)

编辑:如果你的系统是从/向IPv6可以推断该算法在它们之间改变映射的IPv4通过阅读this

+0

thanksi我怎么能得到IPv4之一? – yrazlik

+0

@bigO [wikipedia关于IPv6的文章](http://en.wikipedia.org/wiki/Ipv6)提到了IPv6和IPv4之间的映射约定以及如何实现 – morgano

0

JSP代码:

<html> 
<head><title>Hello World</title></head> 
<body> 
    Hello World!<br/> 
    <% 
     out.println("Your Host IP address is " + request.getRemoteHost()+"</br>"); 
     out.println("Your Addr address is " + request.getRemoteAddr()+"</br>"); 
     out.println("Your Port Post address is " + request.getRemotePort()+"</br>"); 
    %> 
</body> 
</html> 

使用http:// 127.0.0.1:8081/hello.jsp中得到结果:

Hello World! 
Your Host IP address is 0:0:0:0:0:0:0:1 
Your Addr address is 0:0:0:0:0:0:0:1 
Your Port Post address is 32432 

使用http:// 本地主机:8081/hello.jsp中得到结果:

Hello World! 
Your Host IP address is 0:0:0:0:0:0:0:1 
Your Addr address is 0:0:0:0:0:0:0:1 
Your Port Post address is 32432 
+0

您提供的结果对于这两个请求都是完全相同的。这就是你想说的,没有区别? – sorrymissjackson

+0

是的,我经过仔细观察后,没有什么区别......大声笑 – Wuaner

相关问题