java的servlet 不通过request能获取到服务器IP与提供的端口号吗。
所以javascript可以通过ajax技术来获得后端语言得到的IP,并返回到前端。
1:通过java的servlet获取IP:
public String getRemoteAddress(HttpServletRequest request) {
String ip = requestgetHeader("x-forwarded-for");
if (ip == null || iplength() == 0 || ipequalsIgnoreCase("unknown")) {
ip = requestgetRemoteAddr();
}
return ip;
}
如果是用反向代理技术的话requestgetHeader("x-forwarded-for");会有值,
一般情况下,只要requestgetRemoteAddr();就可以了。
2:获取MAC:
public String getMACAddress(String ip) {
String str = "";
String macAddress = "";
try {
Process p = RuntimegetRuntime()exec("nbtstat -a " + ip);
InputStreamReader ir = new InputStreamReader(pgetInputStream());
LineNumberReader input = new LineNumberReader(ir);
for (int i = 1; i < 100; i++) {
str = inputreadLine();
if (str != null) {
//if (strindexOf("MAC Address") > 1) {
if (strindexOf("MAC") > 1) {
macAddress = strsubstring(
strindexOf("=") + 2, strlength());
break;
}
}
}
} catch (IOException e) {
eprintStackTrace(Systemout);
}
return macAddress;
}
通过命令nbtstat -a ip来获得该ip相对应的mac地址。
这个要看你主要是用来干什么,和怎么用。
简单的,你用java实现个ssh协议(网上有现成的开源实现),通过协议远程登录linux。
然后执行 ls 之类的命令,就可以获取了。
0条评论