0

0

怎样查网卡出厂MAC_从固件读取原始MAC技巧【方法】

蓮花仙者

蓮花仙者

发布时间:2026-01-31 10:45:09

|

790人浏览过

|

来源于php中文网

原创

需直接从网卡固件读取原始MAC地址,方法包括:一、BIOS/UEFI中查看“LAN MAC Address”;二、Linux用ioctl或/sys/class/net/*/device/uevent获取;三、DOS下运行厂商EEPROM工具;四、解析PCI VPD区ETHA字段;五、WinPE中运行硬件诊断工具查“Burned-in Address”。

怎样查网卡出厂mac_从固件读取原始mac技巧【方法】

如果您需要确认网卡真实的出厂物理地址,而非操作系统中可能被修改过的MAC地址,则必须绕过驱动层与注册表,直接从网卡固件(如EEPROM或Flash)中读取原始MAC地址。以下是多种可操作的底层读取方法:

一、通过BIOS/UEFI界面查看集成网卡原始MAC

主板BIOS/UEFI在POST阶段会从网卡控制器的硬件寄存器或绑定EEPROM中读取并缓存原始MAC地址,该值通常不可被操作系统覆盖,是验证出厂地址的可信来源。

1、重启计算机,在启动过程中反复按Del、F2、F10或Esc键(具体按键依主板品牌而定)进入BIOS/UEFI设置界面。

2、导航至“Advanced”、“Integrated Peripherals”、“Onboard Devices Configuration”或“Network Stack Configuration”等类似菜单项。

3、查找标有“LAN MAC Address”、“Onboard LAN MAC”、“PXE Boot MAC”或“Ethernet MAC”等字样的字段。

4、该字段显示的12位十六进制字符串(格式如00:1A:2B:3C:4D:5E00-1A-2B-3C-4D-5E)即为网卡固件中烧录的原始MAC地址。

二、使用Linux下ioctl系统调用直接读取硬件MAC

该方法通过创建原始socket并调用SIOCGIFHWADDR ioctl指令,直接向网卡驱动发送硬件查询请求,返回值来自网卡EEPROM或控制器寄存器,不经过内核网络缓存,可规避软件层伪造。

1、打开终端,确保当前用户具有root权限或已加入netdev组。

2、执行命令:ip link show dev eth0 | grep -o -E '([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}',其中eth0需替换为实际网卡名(可用ip -br link查看)。

3、若需验证是否为固件原始值,可卸载对应网卡驱动模块后重新加载:sudo modprobe -r e1000e && sudo modprobe e1000e(以Intel e1000e为例),再执行步骤2,比对前后输出是否一致。

4、进一步确认,可读取/sys/class/net/eth0/device/uevent文件,查找DEVICEMAC=行——该值由内核在初始化时从PCI配置空间或EEPROM一次性读取并固化,不会随ifconfig或ip link set修改而改变

三、利用DOS环境运行厂商专用工具读取EEPROM

部分网卡厂商(如Realtek、Intel、Broadcom)提供DOS下可执行的EEPROM读取工具,能绕过Windows驱动栈,直接通过I/O端口或内存映射访问网卡片上存储,获取未被覆盖的原始MAC。

1、下载对应网卡型号的DOS版EEPROM工具,例如RTL8168 EEPROM Reader、Intel EEUPDATE或Broadcom b57win。

2、制作DOS启动U盘(如使用Rufus选择FreeDOS镜像写入)。

3、将工具文件复制至U盘根目录,重启电脑并从该U盘启动。

Media.io
Media.io

多功能的AI视频和图像处理平台

下载

4、在DOS命令行中运行工具,例如:eeupdate /nic=1 /dump 或 rtl8168eep /read,观察输出中明确标注为“Permanent MAC”、“Factory MAC”或“ROM MAC”的字段值。

5、该值即为刻录于网卡EEPROM中的不可擦写原始MAC地址,即使通过Windows高级属性修改了“网络地址”,此值亦保持不变。

四、解析网卡PCI设备配置空间获取MAC

PCI/PCIe设备在配置空间偏移0x2C–0x2F处(部分为0x30–0x35)通常存放一个指向MAC地址存储位置的指针或直接嵌入前半段MAC,该区域由BIOS初始化时读取,属于硬件级只读信息源。

1、在Linux中安装lspci工具:sudo apt install pciutils(Ubuntu/Debian)或sudo yum install pciutils(CentOS/RHEL)。

2、执行命令:sudo lspci -vv -s $(lspci | grep Ethernet | head -n1 | awk '{print $1}') | grep -A10 "Capabilities:.*VPD",定位VPD(Vital Product Data)区域。

3、使用vpddecode工具解析:sudo vpddecode /sys/bus/pci/devices/0000:00:1f.6/vpd,查找关键词“MAC”或“ETHA”。

4、若VPD中存在“ETHA”关键字,其后紧邻的6字节数据即为从网卡EEPROM VPD区读取的原始MAC地址,该数据在出厂时写入,与BIOS中显示值一致。

五、使用Windows PE环境运行硬件诊断工具

在Windows预安装环境(WinPE)中运行厂商提供的硬件级诊断套件,可避免系统驱动干扰,直接访问网卡底层接口获取固件MAC。

1、构建含网络支持的WinPE 10/11启动介质(使用Windows ADK制作)。

2、将厂商诊断工具(如Dell ePSA、HP PC Hardware Diagnostics、Lenovo ThinkSystem UEFI Diagnostics)复制至WinPE镜像中。

3、从WinPE启动,运行诊断工具并进入“Network Adapter Test”或“Component Information”模块。

4、在网卡详情页中查找“Burned-in Address”、“Permanent Address”或“Hardware Address”字段。

5、该字段显示的值即为网卡芯片出厂时一次性烧录的MAC地址,不受任何操作系统级修改影响。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

186

2023.09.27

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

320

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

212

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1503

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

625

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

655

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

610

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

172

2025.07.29

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

1

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.2万人学习

Git 教程
Git 教程

共21课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号