武汉理工大学学 生 实 验 报 告 书实验课程名称 计算机网络 开 课 学 院 计算机科学与技术学院 指导老师姓名 刘东飞 学 生 姓 名 学生专业班级 软件 zy1302 2025 — 2025 学年 第 2 学期学生学号实验课成绩实验课程名称: 计算机网络 实验项目名称猎取以太网卡的 MAC 地址实验成绩实验者专业班级软件 zy1302组别同组者实验日期2025 年 6 月 3 日第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述)内容:设计一个程序,使得能够猎取本机安装的以太网卡的物理地址。 要求:一人独立完成,可显示运行机器的 MAC 地址。二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等,用硬件逻辑或者算法描述 )在很多时候,我们需要获得服务器硬件信息(比如 MAC 地址),常用的有几种的方式:使用命令行程序获得硬盘信息,然后通过 Runtime.getRuntime().exec获得输出流,然后通过字符串分析获得 MAC 地址编译本地程序,然后通过 JNI 调用以上两种方式都需要区分不同的操作系统平台,分别编码,比较麻烦,所以我使用了通用的跨平台的操作方式,那就是 JDK 自带的 NetworkInterface 接口,该接口在 JDK1.4 已经出现,但是功能比较少,JDK1.6 之后新增了不少新功能,比较不错。三、主要仪器设备及耗材主要仪器:PC 机,按学生人数配备;局域网网络设备。第二部分:实验调试与结果分析(可加页)一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)关键代码:/** * 根据"XX-XX-XX-XX-XX-XX"格式,猎取本机所有的 MAC 地址 * @return MAC 地址的列表 * @throws Exception */public static List getMacAddresses() throws Exception{ // 声明列表,用来存储所有 MAC 地址 List macAddresses = new ArrayList<>(); // 猎取本机的所有网络接口,并遍历 Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); while (networkInterfaces.hasMoreElements()) { NetworkInterface networkInterface = networkInterfaces.nextElement(); // 猎取该网络接口的硬件地址,一半是 MAC 地址 byte[] hardwareAddress = networkInterface.getHardwareAddress(); if (networkInterface.isUp() && hardwareAddress != null && ...