Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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.getRemoteAddr()返回0:0:0:0:0:0:0:1_Java_Jsp_Servlets - Fatal编程技术网

Java 使用request.getRemoteAddr()返回0:0:0:0:0:0:0:1

Java 使用request.getRemoteAddr()返回0:0:0:0:0:0:0:1,java,jsp,servlets,Java,Jsp,Servlets,我正试图在我的Web应用程序中打印登录用户的IP地址。如果用户使用IP地址192.168.10.120:8080/WebApplication从另一台电脑(在同一网络下,因为web应用程序正在我的电脑上运行)连接,则代码request.getRemoteAddr()或request.getLocalAddr())将返回他的IP地址。当我从运行web应用程序的pc登录时,我会得到这个IP地址0:0:0:0:0:0:1为什么?这些命令之间的区别是什么(我应该使用哪个?),非常感谢 解决了您的目的,但

我正试图在我的Web应用程序中打印登录用户的IP地址。如果用户使用IP地址
192.168.10.120:8080/WebApplication
从另一台电脑(在同一网络下,因为web应用程序正在我的电脑上运行)连接,则代码
request.getRemoteAddr()或
request.getLocalAddr())将返回他的IP地址。当我从运行web应用程序的pc登录时,我会得到这个IP地址0:0:0:0:0:0:1

为什么?这些命令之间的区别是什么(我应该使用哪个?),非常感谢

解决了您的目的,但如果客户端位于任何代理之后,则您将获得代理的IP地址:

返回客户端或最后一个代理的Internet协议(IP)地址 发出请求的人


()返回运行应用程序的服务器的IP

在您的情况下,当您试图在本地计算机上访问它时,它将返回该值。但是让您的一位朋友访问它,您将通过
getRemoteAddr

从javadoc:

-返回发送请求的客户端或最后一个代理的IP地址


-返回接收请求的接口的IP地址。

当我们从IPv4转到IPv6时,他们正在将环回地址(本地主机)从
127.0.0.1
更改为
0:0:0:0:1
,这就是您获得此地址的原因

至于功能:

  • getRemoteAddr()
    返回客户端IP地址

  • getLocalAddr()
    返回应用程序所在服务器的IP 继续


localhost将返回该IP。在其他计算机上,您将看到实际的IP。谢谢@Makky您知道这两个命令之间的区别吗?
getLocalAddr()
获取接收请求的计算机的IP地址。相反,
getRemoteAddr()
获取请求资源的计算机的IP地址。您将获得远程地址,而不是将url作为“提供url作为”。这并没有回答问题,并且已经有了可接受的答案。