`
footman265
  • 浏览: 119026 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

servlet 获取ip和mac

    博客分类:
  • j2SE
阅读更多
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;
     }
}
 
分享到:
评论

相关推荐

    Servlet实现前台样式的使用ARP协议获取局域网内活动主机物理地址

    例如,可以创建一个表格显示IP和MAC地址的对应关系,使用Ajax异步请求Servlet获取数据,更新表格内容。此外,前端还可以提供搜索和过滤功能,方便用户查找特定主机的信息。 在实际项目设计中,需要注意安全性和性能...

    jsp中获取地址的写法

    2. **`getRemoteAddr()`** 和 **`getRemoteHost()`**:这两个方法可以分别获取客户端的 IP 地址和主机名。 ```java String clientIP = request.getRemoteAddr(); String clientHost = request.getRemoteHost(); ...

    签到系统很适合初学者

    签到系统是一个基础但实用...同时,还能了解到如何通过IP地址获取MAC地址,以及如何根据时间信息判断迟到旷课状态,这些都是实际应用场景中常见的技术问题。在实践中不断磨练,可以快速提升编程技能和解决问题的能力。

    Java 16道面试题和答案.docx

    12. **NAT协议**:网络地址转换(NAT)的主要目的是隐藏内部网络的私有IP地址,提高安全性,同时减少公有IP地址的消耗。 13. **MAC地址**:MAC(Media Access Control)地址是网卡的物理地址,用于在网络中唯一标识...

    给tomcat 服务器配置域名

    在IT行业中,Tomcat是一个广泛使用的开源应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)应用程序。配置域名对于将Tomcat服务器暴露在互联网上并提供服务是至关重要的。以下是一个详细的步骤指南,...

    Python Cookbook

    9.12 获取UNIX Shell命令的输出流和错误流 364 9.13 在UNIX中fork一个守护进程 367 第10章 系统管理 370 引言 370 10.1 生成随机密码 371 10.2 生成易记的伪随机密码 372 10.3 以POP服务器的方式验证用户 375...

    tomcat安装及配置教程

    【Tomcat安装及配置教程】 在本教程中,我们将深入探讨Apache Tomcat的安装与配置过程,这是一款广泛使用的开源Java Servlet容器,...通过阅读《tomcat安装及配置教程.pdf》文件,可以获取更详尽的信息和实战指导。

    最新 tomcat 服务器

    - 限制远程访问:可以通过修改`conf/server.xml`的`Connector`元素,设置`address`属性来限定监听的IP地址。 - 使用HTTPS:配置SSL连接器以支持加密通信。 - 调整线程池:通过修改`Connector`的`maxThreads`和`...

    Tomcat能起开,但是访问不进8080首页的问题解决方案

    尤其是`port`属性应设为8080,`address`属性(如果有)不应设置为特定IP地址,而应保持默认的`0.0.0.0`,以监听所有网络接口。 3. **部署问题**:Eclipse中的项目部署可能存在问题。如描述中提到,可能需要将已部署...

    JAVA程序员面试问题

    连接池预先创建了一组数据库连接,当应用程序请求数据库访问时,直接从池中获取一个已建立的连接,使用完毕后归还到池中,避免了每次访问数据库都要新建和销毁连接的开销。JDBC驱动是Java应用程序与数据库通信的桥梁...

    运维142问不看一定后悔

    9. **LVS-DR模式原理**:Director不直接处理数据包,而是修改数据包的目标MAC地址,使数据包直接流向Real Server。 10. **LVS-DR模式特性**:效率高,但要求Real Server在同一物理网络上。 11. **LVS负载调度算法*...

    Tomcat权威指南

    - **官方文档**:介绍了如何获取官方文档以及如何利用这些资源加深对Tomcat的理解。 - **社区论坛**:指出了参与Tomcat社区的重要性,并提供了参与的方式。 - **插件与工具**:列举了一些常用的插件和工具,以辅助...

    h_JAVA 2应用编程150例.rar

    实例137 获取本机的Mac地址 508 实例138 获取Java系统信息 509 实例139 控制Java与C++程序的通信 510 实例140 访问Windows注册表 514 第13章 Java配置与集成 523 实例141 J2SDK的安装配置 524 实例142 使用第三方包 ...

    使用genymotion访问本地上Tomcat上数据的方法

    Genymotion模拟器使用了一个特殊的IP地址`10.0.3.2`来指向主机的网络接口。因此,当你在本地浏览器中使用`http://localhost:8080`访问Tomcat时,在Genymotion模拟器中,你需要将`localhost`替换为`10.0.3.2`。 所以...

    java应用软件程序设计

    505 实例137 获取本机的Mac地址 508 实例138 获取Java系统信息 509 实例139 控制Java与C++程序的通信 510 实例140 访问Windows注册表 514 第13章 Java配置与集成 523 实例141 J2SDK的安装配置 524...

    网管教程 从入门到精通软件篇.txt

    Cell/ⅡMAC/PC抽样设备 INT:中间代码,当一个源程序经过语法检查后编译产生一个可执行代码 IOF:Findit文档 IQY:Microsoft Internet查询文件 ISO:根据ISD 9660有关CD-ROM文件系统标准列出CD-ROM上的文件 ISP...

Global site tag (gtag.js) - Google Analytics