我正在尝试开发一个javaweb应用程序(servlet),我需要它来获取客户机的ip地址。
以下是我目前的代码:
String ipAddress = request.getRemoteAddr();
在这种情况下,大部分时间我都会得到“默认网关地址”(147.120.1.5)。不是我的机器ip地址(174.120.100.17)。
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
在这种情况下,大部分时间我都会得到“默认网关地址”(147.120.1.5)。不是我的机器ip地址(174.120.100.17)。
InetAddress IP=InetAddress.getLocalHost();
System.out.println(IP.getHostAddress());
在本例中,我得到了服务器ip地址(147.120.20.1)。
我的ip地址是147.120.100.17。现在我不知道如何获得真正的客户端ip地址。
非常感谢你。
4条答案
按热度按时间wlwcrazw1#
试试这个,
参考文献:http://www.mkyong.com/java/how-to-get-client-ip-address-in-java/
jhdbpxl92#
试试这个。在任何情况下
pbossiut3#
如果您试图获取dev环境的ip地址,那么您可以使用this:-
这个
request.getLocalAddr()
将返回请求接收系统的ip地址。希望有帮助。
qzwqbdag4#
输出: