如何使用Java获取用户机器IP
我正在尝试使用java从我的服务器获取用户的计算机IP地址 我使用了下面的代码,它在本地运行良好如何使用Java获取用户机器IP,java,Java,我正在尝试使用java从我的服务器获取用户的计算机IP地址 我使用了下面的代码,它在本地运行良好 URL url = new URL("http://www.geoplugin.net/json.gp?jsoncallback=?"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"
URL url = new URL("http://www.geoplugin.net/json.gp?jsoncallback=?");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
}
}
使用这个类,response显示我的本地web应用中的ip。(localhost:8080/myApp/getIp)
我将此war部署到AWS服务器,并尝试运行servlet。但这始终仅显示AWS ip地址。(myIp:8080/myApp/getIp)
它没有显示我的机器IP
我的代码有什么错误,有人能帮忙吗
应该返回实际客户端的详细信息如果您想获得客户端ip,即用户通过浏览器访问您的web应用程序,那么您可以使用(客户端脚本)javascript来实现。下面是一个简单的例子
功能显示(响应){
控制台日志(响应);
var html=‘出了什么问题!’;
if(200==响应.地理定位单元状态){
html='将您的ip设置为:'+response.geoplugin_请求;
}
document.getElementById('ip')。innerHTML=html;
}
var script=document.createElement('script');
script.async=true;
script.src=http://www.geoplugin.net/json.gp?jsoncallback=show';
document.getElementById('ip').appendChild(脚本)代码>
获取IP…
发布前搜索。我将此war部署到AWS服务器,并尝试运行servlet。但这总是只显示AWS ip地址。。。在本地运行工作。。。正确的。。。是AWS发出请求,因此您获得AWS IP。当您连接到该站点时,您将获得IP。。。这就是工作原理。还要记住,一台机器可能有多个IP地址。现在还不清楚你想在这里实现什么,所以请澄清。这是我已经实现的。但由于我们有一些安全问题,需要使用后端。谢谢Arvind@Clara,您能在这里解决使用此类API的安全问题吗?别误会我,我只是为了理解而问。