【发布时间】:2014-11-12 09:30:00
【问题描述】:
我正在开发 Web 应用程序,我需要知道谁都在访问我的 Web 应用程序,因为我需要运行我的应用程序的系统的 ip (ipv4) 地址。我正在使用 jsp 和 servlet 谁能帮我解决这个问题???
我尝试了下面的代码,但每次用户访问应用程序时它都会显示我的 IP 地址。但我需要客户端 IP (ipv4) 地址。
try {
Enumeration e = NetworkInterface.getNetworkInterfaces();
while(e.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) e.nextElement();
System.out.println("Net interface: "+ni.getName());
Enumeration e2 = ni.getInetAddresses();
while (e2.hasMoreElements()){
InetAddress ip = (InetAddress) e2.nextElement();
System.out.println("IP address: "+ ip.toString());
}
}
}
catch (Exception e) {
e.printStackTrace();
}
【问题讨论】:
-
NetworkInterface.getNetworkInterfaces()获取运行 JVM 的网络接口,即您的服务器。 -
你的标题说你想要客户端的IP,但你的问题说你想要“运行我的应用程序的系统地址”,这将是服务器。目前还不清楚你想要哪个。您的代码似乎在寻找服务器的 IP 地址,但这不会告诉您谁在访问您的应用程序。
-
@Wyzard:他需要客户端 IP 地址(“运行我的应用程序”意味着“在浏览器中”)。