java的servlet 不通过request能获取到服务器IP与提供的端口号吗。
在程序里要使用IP与端口,但是发现除了request里有相应API,没有其它方法获取IP与端口了,我想一个servlet既然初始化完成了,那么即使没有request也应该...
在程序里要使用IP与端口,但是发现除了request里有相应API,没有其它方法获取IP与端口了,我想一个servlet既然初始化完成了,那么即使没有request也应该知道自己提供服务的IP与端口吧?请高手指教。
遍历servlet中的所有内容,怎么做? 展开
遍历servlet中的所有内容,怎么做? 展开
展开全部
所以javascript可以通过ajax技术来获得后端语言得到的IP,并返回到前端。
1:通过java的servlet获取IP:
public String getRemoteAddress(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {
ip = request.getRemoteAddr();
}
return ip;
}
如果是用反向代理技术的话request.getHeader("x-forwarded-for");会有值,
一般情况下,只要request.getRemoteAddr();就可以了。
2:获取MAC:
public String getMACAddress(String ip) {
String str = "";
String macAddress = "";
try {
Process p = Runtime.getRuntime().exec("nbtstat -a " + ip);
InputStreamReader ir = new InputStreamReader(p.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
for (int i = 1; i < 100; i++) {
str = input.readLine();
if (str != null) {
//if (str.indexOf("MAC Address") > 1) {
if (str.indexOf("MAC") > 1) {
macAddress = str.substring(
str.indexOf("=") + 2, str.length());
break;
}
}
}
} catch (IOException e) {
e.printStackTrace(System.out);
}
return macAddress;
}
通过命令nbtstat -a ip来获得该ip相对应的mac地址。
1:通过java的servlet获取IP:
public String getRemoteAddress(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {
ip = request.getRemoteAddr();
}
return ip;
}
如果是用反向代理技术的话request.getHeader("x-forwarded-for");会有值,
一般情况下,只要request.getRemoteAddr();就可以了。
2:获取MAC:
public String getMACAddress(String ip) {
String str = "";
String macAddress = "";
try {
Process p = Runtime.getRuntime().exec("nbtstat -a " + ip);
InputStreamReader ir = new InputStreamReader(p.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
for (int i = 1; i < 100; i++) {
str = input.readLine();
if (str != null) {
//if (str.indexOf("MAC Address") > 1) {
if (str.indexOf("MAC") > 1) {
macAddress = str.substring(
str.indexOf("=") + 2, str.length());
break;
}
}
}
} catch (IOException e) {
e.printStackTrace(System.out);
}
return macAddress;
}
通过命令nbtstat -a ip来获得该ip相对应的mac地址。
展开全部
request是由servlet容器管理的,能够获取相应的IP和port,当然你也可以便利servlet中所有的内容,然后查找相应的IP和port,或者截取请求而的header,根据get还是post获取到IP信息
更多追问追答
追问
遍历servlet中的所有内容,怎么做?
追答
ServletContext servletContext=getServletContext().getAttributeNames();返回的是一个枚举,你对这个枚举进行操作
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个可不是的,request相当于客户端,浏览器端的请求,是通过request的构造方法进行表单的提交,然后再分装到实体对象中,再调用业务层济宁处理数据,然后后面再进行操作了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
.String getRemoteAddr():这是获取客户端的IP,
.int getRemotePort():获取客户端的主机端口
.String getServerName():获取服务器的名字。
希望对你有所帮助。
仅供参考!
.int getRemotePort():获取客户端的主机端口
.String getServerName():获取服务器的名字。
希望对你有所帮助。
仅供参考!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询