`

如何利用JAVA程序得到电脑(windows和linux)的MAC地址

 
阅读更多

1、新建一个专门用来得到电脑的MAC地址对象类,然后对其进行调用

MacAddress.java

import java.io.*;
import java.util.*;
import java.util.regex.*;

public class MacAddress {

    private static final String[] windowsCommand = {"ipconfig", "/all"};
    private static final String[] linuxCommand = {"/sbin/ifconfig", "-a"};
    private static final Pattern macPattern = Pattern.compile(".*((:?[0-9a-f]{2}[-:]){5}[0-9a-f]{2}).*", Pattern.CASE_INSENSITIVE);

    private static List<String> getMacAddressList() throws IOException {
        ArrayList<String> macAddressList = new ArrayList<String>();
        final String os = System.getProperty("os.name");
        final String[] command;
        if (os.startsWith("Windows")) {
            command = windowsCommand;
        } else if (os.startsWith("Linux")) {
            command = linuxCommand;
        } else {
            throw new IOException("Unknown operating system: " + os);
        }
        final Process process = Runtime.getRuntime().exec(command);
        // Discard the stderr
        new Thread() {

            @Override
            public void run() {
                try {
                    InputStream errorStream = process.getErrorStream();
                    while (errorStream.read() != -1) {
                    }
                    errorStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }.start();
        // Extract the MAC addresses from stdout
        BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        for (String line = null; (line = reader.readLine()) != null;) {
            Matcher matcher = macPattern.matcher(line);
            if (matcher.matches()) {
                //macAddressList.add(matcher.group(1));
                macAddressList.add(matcher.group(1).replaceAll("[-:]", ""));
            }
        }
        reader.close();
        return macAddressList;
    }

    public static String getMacAddress() {
        try {
            List<String> addressList = getMacAddressList();
            if (addressList.isEmpty()) {
                return "";
            }
            return addressList.get(0);
        } catch (IOException e) {
        	e.printStackTrace();
            return "";
        }
    }

    public static String[] getMacAddresses() {
        try {
            return getMacAddressList().toArray(new String[0]);
        } catch (IOException e) {
        	e.printStackTrace();
            return new String[0];
        }
    }
}

 2、建一个主类对其进行调用

import java.io.IOException;

public class test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
					MacAddress mac = new MacAddress();
					System.out.println("本电脑的MAC地址为:"+mac.getMacAddress());
	}

	 
}

 

any question   to call 13886053422    or QQ of 526151410

分享到:
评论

相关推荐

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

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

    java读取服务器硬件信息(windowx+linux+Mac OS)

    在Java编程中,读取服务器硬件信息是一项重要的任务,尤其对于跨平台的应用程序来说,能够兼容Windows、Linux和Mac OS等不同操作系统是必不可少的。本文将深入探讨如何使用Java来获取这些不同系统的硬件信息。 首先...

    php与java获得电脑mac地址

    这个Java程序枚举了所有活动的网络接口,并打印出每个接口的MAC地址。注意,这个方法可能会返回多个MAC地址,特别是当系统有多个网络接口时。 总结来说,获取MAC地址涉及对不同操作系统的理解以及利用适当的语言...

    用Java实现的网络唤醒工具

    2. **跨平台性**:由于Java的“一次编写,到处运行”特性,这个网络唤醒工具可以在任何支持Java的平台上运行,如Windows、Linux、Mac OS等。这意味着开发者只需要编写一套代码,用户无论在哪个操作系统上都可以使用...

    项目打包工具发布java程序

    Java程序的发布通常涉及到将源代码编译、打包和部署等多个步骤,以便用户可以在不同的环境中运行。"项目打包工具发布Java程序"这个标题暗示了我们正在讨论如何利用特定的工具来简化这一流程,使得Java应用程序可以以...

    Java免费学小程序之Java实现快速电脑程序启动

    在这个“Java免费学小程序之Java实现快速电脑程序启动”的主题中,我们将深入探讨如何利用Java编写小程序,来实现在计算机上快速启动应用程序的功能,以此来提升操作体验和展示Java的魅力。 首先,我们需要理解Java...

    apktool_2.6.0(附Windows、Linux、Mac下的安装说明和wrapper包装脚本).zip 2021最新版

    1. **反编译**:Apktool能够将APK中的Dex文件(Dalvik Executable,Android应用程序的执行格式)转换为Java源代码,使开发者可以查看和理解应用程序的逻辑结构。这对于学习他人代码、调试或进行二次开发非常有帮助。...

    KEmulator另一个电脑模拟手机JAVA程序软件

    值得注意的是,由于KEmulator是基于JAVA的,因此它具备跨平台的能力,尽管这里列出的文件主要针对Windows系统,但KEmulator应该也支持其他操作系统,如Linux和Mac OS。 总的来说,KEmulator通过集成各种底层库和...

    跨平台 获取本机IP/MAC地址,检测是否内网IP,字符串IP转换成Number地址

    在Windows系统中,可以使用Winsock API,而在Linux或Mac OS中,可以利用socket库和`ifconfig`命令。对于Java开发者,可以使用`java.net.NetworkInterface`类;对于Python程序员,可以利用`socket`和`os`模块。这些...

    java_windows_32位与64位串口驱动

    "java_windows_32位与64位串口驱动"这个压缩包提供了适用于不同系统环境的驱动,确保无论是在32位还是64位的Windows操作系统上,Java程序都能正确地与串行端口进行交互。由于压缩包不包含Java Development Kit (JDK)...

    VNC服务端 java客户端

    由于Java的跨平台特性,VNC Java客户端可以在任何安装了Java运行环境的设备上运行,无论是Windows、Mac还是Linux。Java客户端通过实现VNC协议,与VNC服务端建立连接,实现远程桌面的显示和操作。Java客户端可能包含...

    java 局域网监控程序

    Java的可移植性使得开发者能够编写在各种操作系统上运行的代码,包括Windows、Linux和Mac OS等。对于局域网监控程序,Java的优势在于它能够方便地处理网络通信,提供了丰富的类库如Socket和ServerSocket,支持TCP/IP...

    电脑java模拟器汉化版

    同时,"适用很多系统"暗示这款模拟器可能跨平台,可以在多种操作系统上运行,如Windows、Linux或Mac OS等。 针对压缩包中的文件名“KEmulator_lite_win32_release_098_200812042313”,我们可以推测这是一款名为...

    获取网卡MAC地址 获取网卡MAC地址

    在编程环境中,如Python、Java、C#等,也有相应的库函数或API可以用来获取MAC地址,比如Python的`uuid.getnode()`函数,Java的`java.net.NetworkInterface`类等。 需要注意的是,有些网络设备或虚拟机可能会使用...

    jd-gui-0.3.5 Linux版本 windows版本和IOS版本合集

    它主要用于查看Java字节码,将编译后的.class文件转换回源代码的形式,这对于逆向工程、调试和学习已有的Java程序非常有用。当原始源代码丢失或不可用时,JD-GUI提供了一种方法来理解程序的内部工作原理。 在...

    PC电脑版JAVA模拟器

    这款PC电脑版JAVA模拟器是专为个人电脑设计的,旨在提供一个便捷的平台来测试和运行Java程序。 首先,我们要理解Java模拟器的工作原理。Java是一种跨平台的编程语言,其“一次编写,到处运行”的理念依赖于Java...

    最新Java JDK 11.0.9免安装版(macos-aarch64位)

    5. **跨平台支持**:除了macOS,Java JDK也适用于Windows和Linux操作系统。在不同的平台上,JDK提供了相应的版本来确保兼容性和性能。 6. **免安装版**:免安装版JDK通常是一个自包含的压缩包,解压后即可使用,...

    Java语言自制翻译词典小型程序

    Java的跨平台能力使得这个翻译词典程序能够在不同的操作系统上运行,包括Windows、Mac OS和Linux等。 Idea是该项目可能使用到的集成开发环境(IDE)——IntelliJ IDEA,这是由JetBrains公司开发的一款强大且高效的...

    Java制作的远程桌面工具,可以在本地远程控制异地电脑

    Java的可移植性使得远程桌面工具能够在不同的操作系统上运行,包括Windows、Mac OS和各种Linux发行版。 2. **远程桌面协议(RDP)**:远程桌面工具通常利用RDP(Remote Desktop Protocol)或类似协议,实现远程会话。...

    图片浏览小程序(java+applet).zip

    由于Java语言具有良好的跨平台性,该程序可以在各种操作系统上运行,如Windows、Linux、Mac等。 使用场景: 该程序的使用场景非常广泛,具体包括以下几个方面: 1. 个人用户:用户可以在自己的电脑上使用该程序...

Global site tag (gtag.js) - Google Analytics