如何在JSP中查找默认网关IP地址

4

我想在jsp中找出客户端的默认网关和DNS。有没有办法可以做到这一点?我已经找到了IP地址,但我也想知道默认网关或DNS。

我已经执行以下操作来查找客户端的IP。

String ipAddress = request.getHeader("X-FORWARDED-FOR");  
String getWay = request.getRemoteAddr() ;   // Gateway
out.println("<br/>IP Address:"+ipAddress+"<br/>");
out.println("<br/>Gateway:"+getWay+"<br/>");

1
你使用了request.getRemoteAddr()方法吗?它会打印什么? - Shivam
这个链接可能解决你的问题:https://dev59.com/33VD5IYBdhLWcg3wWKHc - Felix Gerber
@Shivam 它给了我客户端的 IP。 - nagi
@FelixGerber 我想通过IP或其他方式找到客户端网关。 - nagi
那会很困难... 你只能从 客户端 获取这些信息。你所包含的代码在 服务器 上运行。你需要创建一些在 客户端 上运行的代码。但如果这是标准的 web 流量,客户端只运行 web 浏览器,并且您的 web 浏览器不会运行 .jsp 代码。 - Laszlo Valko
2个回答

0
您可以使用此代码片段并分析响应:
p = Runtime.getRuntime().exec("ipconfig");
p.waitFor();

BufferedReader reader = 
     new BufferedReader(new InputStreamReader(p.getInputStream()));

String line = "";           
while ((line = reader.readLine())!= null) {
sb.append(line + "\n");
}

-1
请点击下面的链接。希望这能回答您的问题: http://ireasoning.com/articles/find_local_ip_address.htm 最可靠的方法是使用路由表。在Windows上,“route print”命令会给我们类似于以下内容:
Runtime.getRuntime().exec("cmd.exe /c route print")
在Linux上,我们可以在/proc/net/route中检查路由表。
BufferedReader reader = new BufferedReader(new FileReader("/proc/net/route"))

这是找到我的网络默认网关路由的方法,对吗?但我想找到任何访问IP或客户端网关。 - nagi
你在使用哪个网络服务器? - Aid325
既然您能够获取IPAddress,如果您使用的是Linux / UNIX操作系统,则可以使用“host -t ns <client ip>”命令获取DNS详细信息。 - Aid325

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接