我正在使用带有Java Web应用程序的Tomcat服务器。 我需要客户端公共IP地址。但是我无法得到它,我使用了request.getHeader(“x-forwarded-for”) request.getRemoteAddr()方法,但我得到客户端机器本地IP地址。
答案 0 :(得分:3)
您正在本地网络中运行服务器。如果它在野外request.getRemoteAddr()
应该完成它的工作。
如果你真的需要在本地网络中你的公共IP在你的本地网络中可能都是相同的,因为它在路由器后面或者使用NAT的东西,它在我看来并没有多大意义。即使你想让你的公共IP使用像ipecho这样的服务:http://ipecho.net/plain
答案 1 :(得分:0)
如果您正在JSP&amp ;;中构建Web应用程序想要将客户端的公共IP地址发送到服务器,您可以使用JavaScript与JSP实现此目的。
//JavaScript dynamically created to obtain CLIENT MACHINE'S IP ADDRESS
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://www.telize.com/jsonip?callback=DisplayIP";
document.getElementsByTagName("head")[0].appendChild(script);
//below given function returns CLIENT MACHINE'S IP ADDRESS to the text box
function DisplayIP(response)
{
document.getElementById("clientip").value = response.ip;
}
IP地址将存储在clientip&将它传递到您发布表单和服务器列表的服务器列表将它传递给servlet。