`
475900947
  • 浏览: 16716 次
社区版块
存档分类
最新评论

java服务器端根据ip获取客户端mac地址

    博客分类:
  • java
阅读更多
//判断系统
public String checkSys(){
    stmt = conn.createStatement();
    String os =System.getProperty("os.name");
    if(os.startsWith("win") || os.startsWith("Win")){
        mac = getMacAdr(ip);
    }else{
        mac = getMacAdrLinux(ip);
    }
    return mac;
}
//根据ip获取mac地址<windows>
public static String getMacAdr(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;
                                }
                                // 中文环境下
                                if (str.indexOf("MAC 地址") > 1){	
                                        macAddress = str.substring(str.indexOf("MAC 地址") + 14, str.length());
                                        break;             
                                 }
                                }
                    }
        } catch (IOException e){
                e.printStackTrace(System.out);
                e.toString();
        }
        return macAddress;
}
//根据ip获取mac地址<linux>
public String getMacAdrLinux(String ip){
        String macAddress ="";
        Process p;
        String str = "";
        try {
                p = Runtime.getRuntime().exec("arp -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){
                                macAddress = str.substring(str.indexOf("at ")+3,str.indexOf("at ")+20);
                                System.out.println(macAddress);
                        }
                 }
        } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }
        return macAddress;	
}
分享到:
评论

相关推荐

    JAVA如何获取客户端IP地址和MAC地址

    在JAVA中获取客户端的IP地址和MAC地址是非常重要的,特别是在服务器端需要记录客户端的信息时。下面我们将详细介绍如何获取客户端的IP地址和MAC地址。 一、获取客户端IP地址 在JAVA中,可以通过HttpServletRequest...

    asp.net获取客户端mac地址

    在ASP.NET中,获取客户端MAC(Media Access Control)地址是一项常见的需求,特别是在网络管理、设备认证或者特定的安全应用场景中。MAC地址是网络设备的物理地址,用于标识连接到网络的设备。然而,由于HTTP协议的...

    获取客户端IP、MAC

    首先,获取客户端IP地址通常涉及到服务器端的编程。在Java中,可以通过`java.net`包中的`Socket`或`HttpServletRequest`类来获取。当客户端发起HTTP请求时,服务器可以接收到请求对象,从中提取出客户端的IP地址。...

    js获取客户端的IP mac地址

    ### JavaScript 获取客户端IP与MAC地址方法详解 #### 一、背景介绍 在Web开发中,有时需要获取客户端的网络信息,比如IP地址和MAC地址。这些信息可用于多种用途,如定位用户位置、进行网络监控等。然而,由于隐私...

    asp.net获得用户IP和MAC地址的方法

    其中,获取客户端的IP地址和MAC地址是两种常用的技术手段。本文将详细探讨如何在ASP.NET环境下利用特定技术来实现这一功能。 #### 技术原理概述 在网页上通过脚本的方式获取用户的IP地址相对简单,可以通过服务器端...

    VNC服务端 java客户端

    在实际使用中,Java客户端通常具有简洁的用户界面,用户只需输入服务端的IP地址和端口号,以及认证信息,就能实现远程连接。 在实际应用中,VNC常用于系统维护、技术支持、远程办公等场景。例如,IT管理员可以通过...

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

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

    java利用socket套接字实现客服端和服务器实现TCP通信

    在Java中,我们通过`java.net.Socket`类来创建客户端,通过`java.net.ServerSocket`类来创建服务器端。 1. **TCP客户端实现**: - 创建`Socket`对象,指定服务器的IP地址和端口号。例如:`Socket socket = new ...

    Java CP/IP Socket编程

    在Java中,套接字API提供了一种简便的方式来创建客户端和服务器端的应用程序。通过使用套接字,开发人员可以轻松地建立连接、发送和接收数据。套接字支持多种通信协议,包括TCP(传输控制协议)和UDP(用户数据报...

    Java局域网通信

    Java的`java.net.InetAddress`类可以用来处理IP地址,而`java.net.NetworkInterface`类则可以帮助获取网络接口的MAC地址。 5. **事件驱动编程**:考虑到用户交互,飞鸽传书可能会使用事件驱动编程模型,例如Swing或...

    java网络编程

    ServerSocket则是服务器端用来监听客户端连接的类。 在TCP/IP模型中,Java网络编程主要涉及以下层次: 1. 应用层:Java的URLConnection和HttpURLConnection类处理HTTP请求,FTPClient类处理FTP协议。 2. 传输层:...

    基于JAVA CS远程监控系统软件的实现(源代码+论文).rar

    1. 客户端应用程序:这部分代码实现了用户界面,可能使用了Java Swing或JavaFX进行图形化设计,同时包含了与服务器端交互的逻辑。 2. 服务器端程序:这部分代码处理客户端的请求,进行数据处理和存储,并可能包含...

    JAVA聊天程序,功能很强大,希望对你有一定帮助

    1. Socket编程:Java聊天程序的核心就是Socket编程,通过TCP/IP协议建立客户端和服务器端的连接,实现数据的双向传输。Socket提供了低级别的、面向连接的、字节流的通信服务。 2. ServerSocket与Socket:...

    使用Socket传输图片

    4. **客户端**:在客户端,我们同样使用`Socket`类创建一个客户端套接字,指定服务器的IP地址和端口号,然后通过`Socket`的`getInputStream()`方法获取输入流,用于接收服务器发送的数据。 5. **接收数据**:客户端...

    毕业论文设计-IT计算机-基于JAVA CS远程监控系统软件的实现(源代码+论文).zip

    接着,通过TCP/IP协议,系统将数据安全地传输到服务器端。Java的Socket编程模型可以有效地处理这些网络通信任务。 在服务器端,数据处理和存储是主要任务。Java的多线程机制允许同时处理多个客户端请求,提高系统的...

    java_msn.zip_java msn_java聊天工具_msn_msn ja_网络聊天 java

    Java的`java.net`包提供了Socket和ServerSocket类,用于实现客户端和服务器端的连接与通信。 3. **多线程**:即时通讯软件通常需要同时处理多个并发连接,因此多线程编程是必不可少的。Java中的Thread类和Runnable...

    Java远程监控软件

    服务器端可以发送指令给客户端,如获取系统状态、读取日志文件、执行命令等,客户端则将执行结果返回。 3. .bat文件:在Windows操作系统中,.bat文件是批处理文件,用于执行一系列命令。在Java远程监控软件中,可能...

    java应用软件程序设计

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

    远程屏幕监控系统(完整)

    1. **服务器端**:服务器端程序接收来自客户端的连接请求,并处理数据流,展示远程设备的屏幕画面。Java的ServerSocket类用于创建监听特定端口的服务器,而Socket类则用于建立客户端与服务器之间的连接。 2. **...

Global site tag (gtag.js) - Google Analytics