ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

MAC地址查看全攻略:从Windows到Codesys PLC

MAC地址查看全攻略:从Windows到Codesys PLC 你有没有遇到过这种场景网络不通了或者给打印机设固定 IP路由器管理页面要你填一串叫做 MAC 地址的东西又或者现场做自动化调试Codesys 上位机连不上 PLC排查的第一步可能就要确认网口地址。我每次到现场都会被人问到同一个问题这串地址到底在哪里看今天就把我平时用到的两种方式完整拆开顺便把 Codesys 里查 PLC 网口 MAC 地址的路径也摸一遍不绕圈子直接落地。这篇文章适合谁读如果你是刚开始接触网络管理的同事或者做 PLC 编程的电气工程师再或者只是家里想给设备固定 IP 的普通用户里面的操作都能直接照抄。后面有一段专门讲工控场景的内容会带一点行业背景但你只要按步骤走不需要提前懂协议也能把问题解决掉。1. 为什么要查看 MAC 地址先搞清楚这串字符的身份很多人第一次见到 MAC 地址是在路由器的“DHCP 静态分配”页面里。那串像 00-1A-2B-3C-4D-5E 的字符看起来就是由 0~9 和 A~F 组成的 12 位编号实际上它是设备网卡的全球唯一标识。网卡在生产时厂商会从 IEEE 申请的地址段里取一个编号烧录进硬件之后这个设备在局域网里进行二层通信时就会用这个地址来互相称呼。用一句大白话说IP 地址像你公司里挂的工号换了办公地点可能就换一个MAC 地址像身份证号硬件只要不换它就基本不变。交换机转发数据、路由器做访问控制、软件做授权验证很多时候都是靠认这串“硬件身份证”来干活的。这也是为什么当你需要给某台电脑固定一个内网 IP、给某台设备做上网白名单或者排查两台设备抢同一个 IP 这类问题时绕来绕去最后都会落到查看 MAC 地址这一步。我在工控现场最常碰到的场景是在 Codesys 或者其他编程软件里连接 PLC 之前要先确认上位机网卡和 PLC 在同一个局域网里。有些调试项目里工程师会希望把 PLC 的 IP 和 MAC 关联起来方便以后识别是哪一台设备有些连锁管理软件在注册授权时也要求填写上位机 MAC 地址作为绑定信息。那时候你如果连 MAC 地址从哪里看都不知道第一步就卡住了。需要查 MAC 地址的常见场景至少有三类。第一类是路由器管理家用路由器里做“固定 IP 分配”“上网控制”或“防蹭网”需要把设备的 MAC 填进去。第二类是网络故障排查比如 IP 冲突时你要通过 MAC 地址找出桌底下那台没有显示器的终端是哪一台。第三类是软件绑定部分工业软件、远程运维工具、版权管理系统会把计算机的 MAC 地址作为一个机器标识换网卡之后软件授权就可能失效。所以查看 MAC 地址不是一个纯技术动作它更像一种非常基础的“设备管理习惯”。平时不需要天天看但真到要配置网络、注册软件、调试 PLC 的时候你得在两分钟内把它找出来。2. 方法一命令行里直接抽出 MAC 地址稳定且通用我要重点讲的第一个方式是通过命令行查看。它适合任何 Windows 版本也适合在远程桌面、PE 维护系统、甚至系统出现界面损坏时使用命令行只要还活着基本就能拿到地址。2.1 用 ipconfig /all 在信息堆里找“物理地址”在 Windows 上打开命令提示符最快的方式是按下 Win R输入 cmd 回车。想省事也可以在开始菜单搜索栏直接敲“命令提示符”看到搜索结果后回车就能打开。对于查 MAC 地址这件事不需要额外以管理员身份运行普通权限完全够用。进入黑色窗口后输入这一条命令ipconfig /all回车之后屏幕上会像瀑布一样刷出一大段信息。默认情况下它会列出你电脑上所有网络适配器的名称、MAC 地址、IP 地址、DNS 等信息。对于不太熟悉这个界面的新手最容易做错的事情是拉到最后一行看或者顺手复制最底下的“物理地址”结果那可能是虚拟网卡的数据根本不是你当前正在用的网口。正确的做法是自上而下找跟你的连接方式相对的那个“适配器”。拿笔记本来说如果你用的是 Wi-Fi就找“无线局域网适配器 WLAN”这一段如果你插了网线就找“以太网适配器 以太网”这一段。在这段信息里面有一行写着“物理地址”那后面的 12 位十六进制字符就是这块网卡的 MAC 地址。显示效果通常是酱紫的以太网适配器 以太网: 连接特定的 DNS 后缀 . . . . . . . : 描述. . . . . . . . . . . . . . . : Realtek PCIe GbE Family Controller 物理地址. . . . . . . . . . . . . : 00-1A-2B-3C-4D-5E DHCP 已启用 . . . . . . . . . . . : 是 自动配置已启用. . . . . . . . . . : 是 本地链接 IPv6 地址. . . . . . . . : fe80::... IPv4 地址 . . . . . . . . . . . . : 192.168.1.100(首选) 子网掩码. . . . . . . . . . . . . : 255.255.255.0 默认网关. . . . . . . . . . . . . : 192.168.1.1看到“物理地址”那一行后鼠标选中并复制即可。这个输出里面的名称如果让人迷惑你可以先在系统托盘把鼠标悬停在网络图标上看当前是“以太网”还是“WLAN”再回过来对号入座。如果你工控机上插着多个网口我建议你按网线插的位置和“描述”里的网卡型号来对应不要只凭一个名字猜。2.2 getmac更简洁的备选命令除了 ipconfig /all 之外Windows 还自带一个专门用于查看 MAC 地址的命令getmac。它的好处是输出更干净不会把 IP、子网掩码、DNS 一股脑堆出来适合只想拿 MAC 地址的场景。直接在命令提示符里输入getmac /v屏幕上会显示“连接名”、“网络适配器”和“物理地址”三列信息。使用getmac时有一点要注意它的输出可能包含多行比如有些电脑装了虚拟网卡、蓝牙 PAN、虚拟交换机等每一行对应一个适配器。跟前面一样你仍要认准当前连接 Ethernet 或 Wi-Fi 的那一项。如果你想把这串地址复制到脚本或表格里可以用 CSV 格式输出getmac /fo csv /nh加上/nh参数后输出去掉了表头只有每行一个适配器名称和物理地址脚本处理起来非常方便。我在维护台账时经常用这个命令批量把现场电脑的 MAC 地址导出来配合一个 Excel 公式把破折号替换成冒号就能统一格式入库。2.3 命令行方式的坑和注意点命令行很好用但并不是零门槛。第一个坑是输出内容过长尤其在电脑上装了 VirtualBox、Docker、WSL 这类虚拟化软件之后网络适配器列表会变得很长很多人看着看着就眼花。第二个坑是拼写容易看错MAC 地址里的字母是十六进制只可能出现 A、B、C、D、E、F不会出现 G 以后的大写字母。如果你复制时手打了请务必检查是不是把 0数字零打成了 O字母欧或者把 1 打成了 I。另外要提醒一句命令行里看到的 MAC 地址是操作系统当前读取到的“当前有效地址”。有些高级网卡具备“本地管辖地址”功能驱动或安防软件可以临时覆盖出厂时的烧录地址只有在设备管理器里把网卡的“网络地址”属性设为空值驱动才会恢复使用硬件烧录的原始 MAC。这种情况虽然少见但在软件授权校验时可能造成“这次看到的 MAC 和上次不一致”的诡异问题。遇到这种问题先不要怀疑软件坏了检查一下网卡高级属性里的“Network Address”或者“本地管理的地址”是否被填了东西。3. 方法二图形界面入口适合快速确认和手边办公第二种方式是不用敲命令直接在图形界面里翻到 MAC 地址。它的优点是直观不用记命令适合运维小白或者你手头正在给用户做电话指导的时候让对方一步步点开设置就能看到。3.1 Windows 10/11 设置里的路径在 Windows 10/11 里最符合直觉的入口是从“设置”进入。点击系统托盘的网络图标再点打开的窗口里的“网络和 Internet 设置”或者直接按 Win I 打开设置后选“网络和 Internet”两种方法都能到达。Windows 11 的界面跟 Windows 10 略有区别但它通常在“高级网络设置”里有一项“硬件属性”点进去就能看到当前网卡的 MAC 地址。如果你连的是 Wi-Fi可以走“Wi-Fi”选项在“属性”里往下翻“以太网”也一样选中正在使用的网络连接属性列表里就有物理地址MAC那一栏。Windows 10 的路径稍微再绕一点但也很固定设置 - 网络和 Internet - 状态 - 查看硬件属性。进去后屏幕上会列出所有适配器的“物理地址”同时显示连接状态和 IP 地址。对于一些企业定制电脑或者精简过的 Windows 版本界面文字可能略有不同如果你找不到“硬件属性”下一小节的备用入口永远更稳。3.2 备用入口控制面板和适配器状态如果“设置”里面找不到硬件属性那就直接用控制面板的老路径。按 Win R 输入ncpa.cpl回车会直接打开“网络连接”窗口里面是这台电脑所有可见的网络适配器图标。这个方法我在实战里用得最多因为不管系统版本怎么变这个老的网络连接窗口基本一直存在。找到你正在用的那个连接图标双击打开“状态”窗口再点“详细信息”按钮。这里弹出的“网络连接详细信息”列表第一行就是“物理地址”下面才是 IP 地址、子网掩码、默认网关等。如果你只有一个有线网口这个方法是所有方式里最快的不需要记任何命令点三下鼠标就到。对于 Windows 7、Windows 8 或者某些单位的精简版系统这套老入口几乎不会失效。所以我做远程指导时最稳的话术是就说按 Win R输入 ncpa.cpl回车双击正在用的连接点详细信息。这个流程不需要对方理解什么协议也不需要对方分辨虚拟网卡只要他能看出哪个图标是“正在使用”的绿色或有线符号就行。3.3 两种方式怎么选命令行和图形界面不是谁取代谁的关系它们的使用场景不同。为了让你在真实环境中少试错我把两者做个简单对比。对比项命令行方式图形界面方式上手难度需要记少量命令不用记命令点菜单输出信息信息量大适配器列表长显示相对友好按连接分类批量导出配合 getmac /fo csv 很方便只能手抄或用表格复制系统依赖PE 环境、远程会话也能用依赖完整图形界面定位速度熟练后最快点选路径略慢适合新人容易迷糊更适合第一次操作我的个人习惯是现场快速查自己电脑用命令行帮别人远程定位用图形界面要登记十台以上设备的 MAC 地址用命令行配合脚本。两种方法各家各有一个已经足够覆盖绝大多数日常使用。4. 工控场景延伸Codesys 的 PLC 网口 MAC 地址怎么查把 MAC 地址放到工业自动化场景里情况会比普通家庭网络复杂一点。很多 PLC 本身不带显示器也没有路由管理界面你要查它的网口 MAC 地址就不能在设备上“打开设置”了。这个关键词搜索热度很高说明确实有很多工程师在调试 Codesys 项目时遇到过类似需求。4.1 PLC 网口 MAC 地址为什么值得单独讲第一PLC 往往没有屏幕。普通电脑可以直接看界面PLC 不行你需要借助编程软件或网段扫描工具去识别对面设备的身份。第二安全鉴权和设备更换时MAC 地址是重要的区分手段。比如现场挂了十台同型号 PLC都接入同一台交换机它们 IP 可能相似但 MAC 地址绝对不同你通过扫描结果把 MAC 和机柜位置对应起来就能避免改错程序。第三有些 PLC 是软 PLC比如在工控机或 PC 上运行 Codesys Control Win那么它使用的网口 MAC 地址实际上就是这张工控机网卡的 MAC这件事很多新工程师没想到导致在 Codesys 配置网关时选错了网卡。4.2 Codesys 扫描网络时怎么显示 MAC 地址现在常用的 Codesys V3.5 版本可以通过“扫描网络”来发现局域网里的 PLC。这个入口通常在编程菜单的“设备”或“通信”工具里不同语言包显示文字可能略有差异你可以找带“Scan”或“扫描”字眼的按钮。扫描时Codesys 会向同一广播域发送组播报文连接在同一个交换机下的设备一般都会回应。扫描结果通常以列表形式展示里面能看到设备名称、IP 地址、是否可连接、以及某些条件下的 MAC 地址。但要注意不是所有扫描结果都会直接显示 MAC有些设备型号只暴露 IP 和型号你需要再双击它进入连接配置才能在设备信息或诊断页面看到完整的 MAC。还有一种情况网关扫描器只会识别安装了 Codesys Control Runtime 的设备如果你手里的 PLC 是内置处理器但运行的不是标准 Codesys 运行时显示字段可能不同。如果扫描列表确实没有 MAC可以试试直接对特定 IP 用 Windows 的 ARP 命令查询在命令提示符里先ping 目标IP然后执行arp -a在输出里找到该 IP 对应的物理地址。这个方法非常实用因为它不依赖 Codesys 版本也不依赖远程桌面只要你上位机能 ping 通 PLCARP 表里基本就能看到跟随这一网口通信的 MAC 地址。我在现场排查时经常把 Codesys 扫描和arp -a结合起来用互相验证避免测试结果看错串。4.3 从设备对象和项目里读取 MAC 地址在 Codesys 项目中当你已经把某个远程设备添加到设备树之后也能在设备对象属性界面里找到 MAC 信息。双击设备树里的 PLC 节点切换到“常规”或“以太网”相关页面不同厂家封装的设备描述文件不一样。有的会把 MAC 地址直接列在“设备信息”里有的藏在“输入/输出映照”或者“诊断”页面里。如果实在找不到可以参考设备手册或直接查看 PLC 硬件外壳上的标签很多 PLC 出厂时会在机身侧边或以太网接口旁边印一个包含 MAC 地址的条形码。还有一种是运行 Codesys 的嵌入式控制器支持通过功能块或结构体读取 MAC。比如在程序里调用 SysInfo 库里的功能块把本机网卡的 MAC 读取到某个全局变量中再通过 HMI 实时显示。这样做的好处是以后不用电脑去看故障设备直接在触摸屏上就能看到当前 PLC 的 MAC 地址和 IP 信息。不过这个功能块在不同平台的可实现性有差异最好先确认你用的目标设备型号是否有相关的系统库支持。对于 Codesys Control Win 这种软 PLC 场景我一般直接在上位机操作系统里查 MAC前面说的两种方法就完全够用。反正软 PLC 用的网口就是电脑的物理网卡不需要再单独找什么特殊地址。4.4 现场维护时的小习惯我在项目调试中吃过一次亏当时现场有两台 PLC 的 IP 恰好配错了扫描列表里只能看到 IP不确定哪一台对应哪一桌设备。后来是靠临时把一台 PLC 的网线拔掉再扫描一次才通过“剩余列表少了谁”定位出 MAC 和 IP 的对应关系。这种摸排方法虽然原始但非常有效。后来我养成一个习惯每次做完项目接线就把每台 PLC 的 MAC 地址、IP、机柜编号、设备在项目里的名称抄在一张表上贴在电柜门内侧或写入项目文档的附录里。Codesys 项目文件本身一般不强制绑定 PLC 的 MAC 地址项目下载到新硬件后也能运行。但很多品牌的 PLC 在更换网口模块或主板后出厂 MAC 会变如果现场设备管理系统里登记的是旧 MAC后续远程维护、资产管理都会对不上号。所以把 MAC 地址归档这件事看起来只是查一下背后其实是设备全生命周期管理的一部分。这跟查普通电脑 MAC 是一样的道理只是工业现场的变更影响更大。5. 常见问题与现场排查经验最后一部分把我在实际操作中遇到过的、以及可能让你卡住的问题集中说一遍。这些东西平时文档里不太会写但遇到一次就够折腾半天。5.1 多网卡环境下怎么判断哪一个是真实网口现在一台电脑里出现两三个网卡太常见了。笔记本自带一个有线网口、一个无线网卡可能还有蓝牙 PAN再加上虚拟机软件生成的虚拟网卡ipconfig /all的输出列表能拉到很长。新手最容易犯的错是把第一个出现的“物理地址”复制走了结果那个可能是 WLAN你实际检测的目标是 Ethernet。判断方法很简单先看网络连接状态。在ipconfig /all输出里找到某一适配器段落如果里面有“媒体状态 . . . . . . : 媒体已连接”说明这个网口上有网线连着如果写着“媒体已断开”那它大概率不是你当前生效的网口。图形界面也一样在“网络连接”窗口里图标下方显示“已连接”的就是正在使用的那块网卡。要是两条连接都显示已连接比如有线、无线同时通那就看你实际想查哪条线路别用“全部适配器”里随便一条充数。USB 转网口的情况也要留意。很多人以为 USB 网卡显示的 MAC 是某个固定的小盒子自带的其实它在电脑的设备管理器里可能显示为“ASIX AX88179 USB GbE”或者“Realtek USB GbE Family Controller”输出名称和普通板载网卡有明显区别。如果你用的扩展坞建议把扩展坞上的 USB 网卡从设备管理器中记一下名字这样后续查起来就不会混淆。5.2 格式和大小写带来的麻烦MAC 地址的标准写法有很多变体带破折号 00-1A-2B-3C-4D-5E、带冒号 00:1A:2B:3C:4D:5E、两两分组合并成 001A2B3C4D5E本质上都是同一个地址。复制粘贴时不同软件、路由器后台、授权系统默认接受的格式可能不同。手工输入时请统一用一种格式先留意目标系统需要的是哪种分隔符避免因为“看起来一样”导致配置无效。大写字母和小写字母在 MAC 地址里通常不区分但一些老旧软件或数据库会做严格匹配。如果你在系统里填了小写在另一个地方填了大写可能被误判为两张网卡。最好的做法是先把格式统一成大写加冒号再复制到台账里。复制时还要小心命令行窗口的选中模式在 CMD 窗口里鼠标左键选是选中复制是右键单击搞错了经常只选中部分内容导致最后拷贝出来的地址少一位。5.3 网卡禁用、驱动更换后的地址变化如果网卡在设备管理器里被禁用了ipconfig /all一般不会列出它图形界面网络连接里会显示灰色图标。此时你可以右键把它启用再重新查看。需要注意启用后系统有可能再次获取新 IP如果本来 IP 冲突别只盯着 MAC 发呆先检查 DHCP 分配结果。驱动更新或重装系统后大多数网卡的 MAC 地址不会变因为硬件烧录的地址是固定在芯片层级的。只有一个例外你在网卡高级属性里手动设置了“Network Address”那个值是优先于硬件烧录值的。出现驱动前后 MAC 地址变化多半是这个地方被配置过清空或者改成“不存在”就能恢复出厂 MAC。5.4 其他系统看 MAC 地址的对照速查虽然本篇重点是 Windows 的两种方式但如果你手里有 Linux 上位机、树莓派、或者 NAS 维护需求给一个简单的对照表省得再搜。操作系统常用方法关键位置Windowsipconfig /all物理地址WindowsgetmacPhysical AddressLinuxip addr showlink/etherLinuxcat /sys/class/net/eth0/addressaddress 文件macOS系统设置-网络-详细信息Wi-Fi 或以太网 MACLinux 下ip addr show输出里的link/ether那串就是 MAC 地址。如果你连的是有线网口看到eth0、enp3s0这类接口名对应关系非常清晰。macOS 上也可以打开终端输入ifconfig en0 | grep ether对大多数人的电脑来说 en0 就是 Wi-Fi 或主以太网口。这里的“mac”是苹果电脑的“macOS”不是“MAC 地址”但你能理解这层意思就不会在系统之间找不到方向了。我在实际工作中查这串地址的次数很多但从来没有觉得这是什么高深技术。真正的难点不是命令而是你能不能在看结果之前先确认“哪块网卡是目标网卡”。把地址抄在纸上、把网线对应关系记在文档里、在系统标签上写好设备标识这些小习惯比你会背十条命令更值钱。下次再遇到要填 MAC 地址的界面你只需要打开命令行或者翻一下设置页两分钟就能解决。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进