ublic class CheckMACandIP extends HttpServlet {
public CheckMACandIP() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String ip = getRemoteAddress(request);
System.out.println(ip);
System.out.println(getMACAddress(ip));
}
public void init() throws ServletException {
}
public String getRemoteAddress(HttpServletRequest request){
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) ip = request.getHeader("Proxy-Client-IP");
if(ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) ip = request.getHeader("WL-Proxy-Client-IP");
if(ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) ip = request.getRemoteAddr();
return ip;
}
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) {
macAddress = str.substring(str.indexOf("MAC Address") + 14, str.length());
break;
}
}
}
} catch (IOException e) {
e.printStackTrace(System.out);
}
return macAddress;
}
}
分享到:
相关推荐
例如,可以创建一个表格显示IP和MAC地址的对应关系,使用Ajax异步请求Servlet获取数据,更新表格内容。此外,前端还可以提供搜索和过滤功能,方便用户查找特定主机的信息。 在实际项目设计中,需要注意安全性和性能...
2. **`getRemoteAddr()`** 和 **`getRemoteHost()`**:这两个方法可以分别获取客户端的 IP 地址和主机名。 ```java String clientIP = request.getRemoteAddr(); String clientHost = request.getRemoteHost(); ...
签到系统是一个基础但实用...同时,还能了解到如何通过IP地址获取MAC地址,以及如何根据时间信息判断迟到旷课状态,这些都是实际应用场景中常见的技术问题。在实践中不断磨练,可以快速提升编程技能和解决问题的能力。
12. **NAT协议**:网络地址转换(NAT)的主要目的是隐藏内部网络的私有IP地址,提高安全性,同时减少公有IP地址的消耗。 13. **MAC地址**:MAC(Media Access Control)地址是网卡的物理地址,用于在网络中唯一标识...
在IT行业中,Tomcat是一个广泛使用的开源应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)应用程序。配置域名对于将Tomcat服务器暴露在互联网上并提供服务是至关重要的。以下是一个详细的步骤指南,...
9.12 获取UNIX Shell命令的输出流和错误流 364 9.13 在UNIX中fork一个守护进程 367 第10章 系统管理 370 引言 370 10.1 生成随机密码 371 10.2 生成易记的伪随机密码 372 10.3 以POP服务器的方式验证用户 375...
【Tomcat安装及配置教程】 在本教程中,我们将深入探讨Apache Tomcat的安装与配置过程,这是一款广泛使用的开源Java Servlet容器,...通过阅读《tomcat安装及配置教程.pdf》文件,可以获取更详尽的信息和实战指导。
- 限制远程访问:可以通过修改`conf/server.xml`的`Connector`元素,设置`address`属性来限定监听的IP地址。 - 使用HTTPS:配置SSL连接器以支持加密通信。 - 调整线程池:通过修改`Connector`的`maxThreads`和`...
尤其是`port`属性应设为8080,`address`属性(如果有)不应设置为特定IP地址,而应保持默认的`0.0.0.0`,以监听所有网络接口。 3. **部署问题**:Eclipse中的项目部署可能存在问题。如描述中提到,可能需要将已部署...
连接池预先创建了一组数据库连接,当应用程序请求数据库访问时,直接从池中获取一个已建立的连接,使用完毕后归还到池中,避免了每次访问数据库都要新建和销毁连接的开销。JDBC驱动是Java应用程序与数据库通信的桥梁...
9. **LVS-DR模式原理**:Director不直接处理数据包,而是修改数据包的目标MAC地址,使数据包直接流向Real Server。 10. **LVS-DR模式特性**:效率高,但要求Real Server在同一物理网络上。 11. **LVS负载调度算法*...
- **官方文档**:介绍了如何获取官方文档以及如何利用这些资源加深对Tomcat的理解。 - **社区论坛**:指出了参与Tomcat社区的重要性,并提供了参与的方式。 - **插件与工具**:列举了一些常用的插件和工具,以辅助...
实例137 获取本机的Mac地址 508 实例138 获取Java系统信息 509 实例139 控制Java与C++程序的通信 510 实例140 访问Windows注册表 514 第13章 Java配置与集成 523 实例141 J2SDK的安装配置 524 实例142 使用第三方包 ...
Genymotion模拟器使用了一个特殊的IP地址`10.0.3.2`来指向主机的网络接口。因此,当你在本地浏览器中使用`http://localhost:8080`访问Tomcat时,在Genymotion模拟器中,你需要将`localhost`替换为`10.0.3.2`。 所以...
505 实例137 获取本机的Mac地址 508 实例138 获取Java系统信息 509 实例139 控制Java与C++程序的通信 510 实例140 访问Windows注册表 514 第13章 Java配置与集成 523 实例141 J2SDK的安装配置 524...
Cell/ⅡMAC/PC抽样设备 INT:中间代码,当一个源程序经过语法检查后编译产生一个可执行代码 IOF:Findit文档 IQY:Microsoft Internet查询文件 ISO:根据ISD 9660有关CD-ROM文件系统标准列出CD-ROM上的文件 ISP...