`

java获取客户端网卡的MAC地址

    博客分类:
  • java
阅读更多

转载自:
  1. import java.io.IOException;  
  2. import java.net.DatagramPacket;  
  3. import java.net.DatagramSocket;  
  4. import java.net.InetAddress;  
  5.   
  6. public class UdpGetClientMacAddr {  
  7.     private String sRemoteAddr;  
  8.     private int iRemotePort = 137;  
  9.     private byte[] buffer = new byte[1024];  
  10.     private DatagramSocket ds = null;  
  11.   
  12.     public static void main(String[] args) {  
  13.         try {  
  14.             UdpGetClientMacAddr mac = new UdpGetClientMacAddr("10.0.150.207");  
  15.             String ma = mac.GetRemoteMacAddr();  
  16.             System.out.println(ma);  
  17.         } catch (Exception e) {  
  18.             e.printStackTrace();  
  19.         }  
  20.     }  
  21.   
  22.     public UdpGetClientMacAddr(String strAddr) throws Exception {  
  23.         sRemoteAddr = strAddr;  
  24.         ds = new DatagramSocket();  
  25.     }  
  26.   
  27.     protected final DatagramPacket send(final byte[] bytes) throws IOException {  
  28.         DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress  
  29.                 .getByName(sRemoteAddr), iRemotePort);  
  30.         ds.send(dp);  
  31.         return dp;  
  32.     }  
  33.   
  34.     protected final DatagramPacket receive() throws Exception {  
  35.         DatagramPacket dp = new DatagramPacket(buffer, buffer.length);  
  36.         ds.receive(dp);  
  37.         return dp;  
  38.     }  
  39.   
  40.     protected byte[] GetQueryCmd() throws Exception {  
  41.         byte[] t_ns = new byte[50];  
  42.         t_ns[0] = 0x00;  
  43.         t_ns[1] = 0x00;  
  44.         t_ns[2] = 0x00;  
  45.         t_ns[3] = 0x10;  
  46.         t_ns[4] = 0x00;  
  47.         t_ns[5] = 0x01;  
  48.         t_ns[6] = 0x00;  
  49.         t_ns[7] = 0x00;  
  50.         t_ns[8] = 0x00;  
  51.         t_ns[9] = 0x00;  
  52.         t_ns[10] = 0x00;  
  53.         t_ns[11] = 0x00;  
  54.         t_ns[12] = 0x20;  
  55.         t_ns[13] = 0x43;  
  56.         t_ns[14] = 0x4B;  
  57.   
  58.         for (int i = 15; i < 45; i++) {  
  59.             t_ns[i] = 0x41;  
  60.         }  
  61.   
  62.         t_ns[45] = 0x00;  
  63.         t_ns[46] = 0x00;  
  64.         t_ns[47] = 0x21;  
  65.         t_ns[48] = 0x00;  
  66.         t_ns[49] = 0x01;  
  67.         return t_ns;  
  68.     }  
  69.   
  70.     protected final String GetMacAddr(byte[] brevdata) throws Exception {  
  71.   
  72.         int i = brevdata[56] * 18 + 56;  
  73.         String sAddr = "";  
  74.         StringBuffer sb = new StringBuffer(17);  
  75.   
  76.         for (int j = 1; j < 7; j++) {  
  77.             sAddr = Integer.toHexString(0xFF & brevdata[i + j]);  
  78.             if (sAddr.length() < 2) {  
  79.                 sb.append(0);  
  80.             }  
  81.             sb.append(sAddr.toUpperCase());  
  82.             if (j < 6)  
  83.                 sb.append(':');  
  84.         }  
  85.         return sb.toString();  
  86.     }  
  87.   
  88.     public final void close() {  
  89.         try {  
  90.             ds.close();  
  91.         } catch (Exception ex) {  
  92.             ex.printStackTrace();  
  93.         }  
  94.     }  
  95.   
  96.     public final String GetRemoteMacAddr() throws Exception {  
  97.         byte[] bqcmd = GetQueryCmd();  
  98.         send(bqcmd);  
  99.         DatagramPacket dp = receive();  
  100.         String smac = GetMacAddr(dp.getData());  
  101.         close();  
  102.   
  103.         return smac;  
  104.     }  
  105. }  

分享到:
评论

相关推荐

    java 获取客户端ip mac地址

    ### Java 获取客户端 IP 和 MAC 地址 在Java Web开发中,有时我们需要获取客户端的IP地址甚至是MAC地址,以便进行安全验证、用户行为追踪等操作。本文将详细介绍如何通过Java来实现这一功能。 #### 一、获取客户端...

    Java/JSP获得客户端网卡MAC地址的三种方法解析

    本文将深入解析在Java/JSP环境中获取客户端网卡MAC地址的三种常见方法,旨在为开发者提供全面而深入的理解。 ### 方法一:通过Java NIO(非阻塞I/O)库 Java NIO库提供了访问底层网络接口的能力,从而可以获取包括...

    通过java获取远程机器mac地址

    在对网内主机进行监控时需要通过java获取远程机器的mac地址

    JAVA得到网卡物理地址(windows和Linux)

    JAVA 获取网卡物理地址(Windows 和 Linux) 在 Java 中获取网卡物理地址是一项常见的需求,特别是在开发网络相关的应用程序时。网卡物理地址,也称为 MAC 地址,是一个唯一的识别码,用来标识网络设备。今天,我们...

    使用JAVA获取客户端MAC地址.doc

    使用JAVA获取客户端MAC地址 //Java获得CPU序列号和网卡Mac地址 /* 利用Runtime call操作系统的命令,具体的命令取决于不同的操作系统,注意不要调用Runtime.getRuntime().exec(String)接口,要用Runtime.getRuntime...

    java编程实现获取服务器IP地址及MAC地址的方法

    在Java编程中,获取服务器的IP地址和MAC地址是常见的需求,特别是在网络通信和系统管理中。本篇文章将详细介绍如何使用Java实现这一功能,包括针对单网卡和多网卡环境的情况。 首先,获取服务器的IP地址通常涉及到`...

    获取客户端IP、MAC

    以下是一些关于如何在Java环境下获取客户端IP和MAC地址的知识点。 首先,获取客户端IP地址通常涉及到服务器端的编程。在Java中,可以通过`java.net`包中的`Socket`或`HttpServletRequest`类来获取。当客户端发起...

    java获取网卡地址

    此外,如果你需要跨平台兼容性,可以考虑使用Java的`InetAddress`类或第三方库,如`jcifs.smb.SmbFile`(Java SMB客户端库)来获取网卡信息,这些API提供了更为标准和统一的方法来获取网络接口信息,而无需依赖于...

    java通过ip获取客户端Mac地址的小例子

    在Java编程中,获取客户端的Mac地址通常是用于设备识别或者网络管理等场景。Mac地址(Media Access Control Address)是网络接口控制器(NIC,Network Interface Controller)的物理地址,它是硬件级别的唯一标识。...

    applet获取mac

    "applet获取mac"这个标题暗示了我们正在讨论一个特定的Java Applet,其功能是获取客户端(用户计算机)的MAC地址。MAC地址,全称Media Access Control Address,是网络设备的物理地址,用于识别网络中的设备。每个...

    JSP开发实用技术整理

    11.javascript获取客户端网卡MAC地址和IP地址和计算机名 7 12.JAVA反射 8 13. 自定义ClassLoader 13 14. double保留两位数的两个方案 18 16. 用户输入输出,文件输入输出范例(1) 19 17.以指定符号分割显示 22 17. ...

    JAVA版DHCP服务器,使用DHCP4Java源码与DEMO,无JAR包

    这个DEMO没有地址池,是配置好的MAC与IP绑定关系,注意看注释啊!地址池自己扩展。 网上的DEMO都是无法用的,我调了半天的源码看懂了DHCP4Java的原理,对网上DEMO做了修改直接可以运行,我的运行环境是JDK1.8+WIN7x...

    计算机网络实验报告 获取MAC socket通信

    java.io.FileInputStream fis = new java.io.FileInputStream( new java.io.File("d:\\数据库.zip")); // 转换成网络输出流 java.net.ServerSocket ss = new java.net.ServerSocket(9000); java.net....

    Java 16道面试题和答案.docx

    13. **MAC地址**:MAC(Media Access Control)地址是网卡的物理地址,用于在网络中唯一标识设备。 14. **Tomcat Coyote**:Coyote是Tomcat的一部分,负责处理HTTP和AJP连接。它提供了连接器组件,用于接收和响应...

    系统监控软件Sigar-System_Runtime.zip

    lib 官方jar包以及底层支撑文件问题解答1、mac下eclipse中配置java.library.pathMac下,eclipse中的配置方法:项目右键-&gt;属性-&gt;java build path-&gt;选择Libraries中的sigar.jar-&gt;在展开的Native library location中...

    Java版水果管理系统源码-JavaInterview:Java面试总结

    Java版水果管理系统源码 “后台开发”指的是“服务端的网 络程序开 发”,从功能上可以具体描述为 :服务器收到客户端发来的 请求数据,解析请求数据后处理,最后返回结果 计算机网络 输入网址后发生了什么 1.浏览器...

    android 蓝牙 串口

    MAC地址是介质访问控制地址,是网卡的物理地址,由48比特长的16进制数字组成。前24位是组织唯一标志符(OUI),用于唯一标识厂商;后24位由制造商自己分配。 - **唯一性**:MAC地址在全球范围内是唯一的,如同人的...

    局域网电脑硬件信息采集

    首先,局域网电脑硬件信息采集的目的是为了获取网络中每台计算机的详细硬件配置,包括但不限于CPU型号、内存容量、硬盘类型、显卡信息、网卡MAC地址等。这些信息对于监控设备性能、规划资源分配、优化网络配置以及...

    ubuntu skills ubuntu命令技巧(pdf格式)

    ##### 6.11 修改网卡MAC地址 修改网卡的MAC地址,可以使用`ip link set &lt;interface&gt; address &lt;new-mac-address&gt;`命令。 ##### 6.12 统计当前IP连接的个数 统计当前IP连接的数量,可以使用`netstat -an | awk '/^tcp...

Global site tag (gtag.js) - Google Analytics