刚写的java获取网卡mac地址序列号的方法。在这里记录一下。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class MACAddress {
public MACAddress() {
}
public static String getMACAddress() {
String address = "";
String os = System.getProperty("os.name");
if (os != null && os.startsWith("Windows")) {
try {
String command = "cmd.exe /c ipconfig /all";
Process p = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p
.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
if (line.indexOf("Physical Address") > 0) {
int index = line.indexOf(":");
index += 2;
address = line.substring(index);
break;
}
}
br.close();
return address.trim();
} catch (IOException e) {
}
}
return address;
}
public static void main(String[] args) {
// System.out.println(""+MACAddress.getMACAddress());
try {
// 枚举所有网络接口设备
Enumeration intefaces = NetworkInterface.getNetworkInterfaces();
// 循环处理每一个网络接口设备
while (intefaces.hasMoreElements()) {
NetworkInterface face = (NetworkInterface) intefaces
.nextElement();
if (face.getName().length() >= 3) {
if ((face.getName()).substring(0, 3).equals("eth") || (face.getName()).substring(0, 3).equals("net")) {
byte[] mac = face.getHardwareAddress();
if (mac != null && mac.length == 6) {
System.out.println("网卡显示名称:"
+ face.getDisplayName());
System.out.println("网卡设备名称:" + face.getName());
System.out.println("MAC地址:" + bytes2mac(mac));
// break;
}
}
}
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static String bytes2mac(byte[] bytes) {
if (bytes.length != 6) {
System.out.println("地址错误");
return null;
}
StringBuffer macString = new StringBuffer();
byte currentByte;
for (int i = 0; i < bytes.length; i++) {
currentByte = (byte) ((bytes[i] & 240) >> 4);
macString.append(Integer.toHexString(currentByte));
currentByte = (byte) (bytes[i] & 15);
macString.append(Integer.toHexString(currentByte));
macString.append("-");
}
macString.delete(macString.length() - 1, macString.length());
return macString.toString().toUpperCase();
}
}
分享到:
相关推荐
得到机器的MAC,硬盘序列序列号和IP地址 public static void main(String[] args) ...{ String osName = System.getProperty("os.name"); StringBuffer systemPathBuff = new StringBuffer(""); if (osName.index...
//Java获得CPU序列号和网卡Mac地址 /* 利用Runtime call操作系统的命令,具体的命令取决于不同的操作系统,注意不要调用Runtime.getRuntime().exec(String)接口,要用Runtime.getRuntime().exec(String[])这个接口,...
MAC地址(Media Access Control Address)是网络硬件设备的物理地址,如网卡、交换机等,它是全球唯一的。利用MAC地址生成的机器码可以作为服务器的身份凭证,确保每个服务器的独立性和可追溯性。 首先,我们来了解...
标题中的“pb获取网卡ip及mac”指的是使用PowerBuilder(PB)开发的程序,用于获取计算机网络接口控制器(NIC,通常称为网卡)的IP地址和物理地址(MAC地址)。在IT领域,理解如何通过编程获取这些网络信息是至关...
标题中的“MAC地址cpu硬盘序列号一键查看器”是一款实用工具,主要功能是帮助用户快速获取计算机的关键硬件信息,包括MAC地址、CPU序列号以及硬盘序列号。这些信息在日常维护、故障排查或系统安全设置时都可能用到。...
在IT行业中,MAC地址(Media Access Control Address)是网络设备如网卡、路由器等在网络通信中使用的物理地址,用于唯一标识网络接口。MAC地址通常由6个字节组成,也就是12位的十六进制数字,例如00:11:22:33:44:55...
3. 网卡MAC地址:MAC(Media Access Control)地址是网卡的物理地址,用于局域网内的设备识别。它是一个48位的二进制数,通常分为6个字节,用冒号或破折号分隔。获取MAC地址可以使用命令行(如Windows的`getmac`,...
总结,本文详细介绍了如何在Linux和Windows操作系统中,利用Java获取硬盘ID(序列号)、MAC地址以及IP地址的方法。在实际应用中,可能需要根据具体的环境和需求进行相应的调整。希望这些信息对需要获取系统信息的...
描述中的"得到机器标识(CPU序列号或网卡Mac地址)"进一步强调了获取计算机的独特标识的重要性。CPU序列号是CPU的物理标识,通常不可更改,可以用来验证硬件身份。而网卡Mac地址(Media Access Control address)是...
在计算机网络中,MAC地址是每个网络设备(如网卡、路由器等)的唯一标识符,用于在局域网(LAN)级别进行通信。这个工具通常被网络管理员、测试人员或开发人员使用,以便在各种测试场景下模拟不同的网络环境。 生成...
1. **网卡MAC地址修改工具.exe**:这是一个执行文件,可能是一个程序,用于修改计算机的网卡MAC地址。通过运行这个程序,用户可以更改其网络适配器的物理地址,从而可能绕过某些网络访问限制或进行故障排除。 2. **...
固定设备硬件标识是指固定设备的唯一标识信息,例如硬盘的物理序列号、CPU序列号、网卡MAC地址等。该信息可以用于硬件绑定保护,防止软件在其他设备上运行。 知识点六:移动设备硬件标识 移动设备硬件标识是指移动...
word源码java MD5-Encryption This is the implement of course named "Computer System Skills Training" of WHUT. 武汉理工大学(WHUT), 2020《计算机系统能力实训课程设计》 ———— "基于MD5加密的动态链接库...
以太网帧包含目的MAC地址、源MAC地址、类型字段、数据字段以及帧检验序列(FCS)。理解帧结构有助于掌握以太网通信的基本原理。编程发送帧数据是网络编程中的一个技能点,涉及到操作系统网络层面对帧数据的操作。 ...
主机通过IP地址和MAC地址进行全局和局部的标识,IP地址用于全局通信,MAC地址则是在局域网中的物理地址,烧录在网卡的ROM中。 网络通信的送达方式有两种:直接送达和间接送达。前者适用于在同一网络内的通信,后者...