在 Linux 上获取物理网卡的 Mac 地址

在 Linux 上获取物理网卡的 Mac 地址

我正在尝试获取 Linux 机器的 mac 地址。但我只想要物理 NIC,而不是虚拟 NIC。我一直在搜索,也许我没有输入正确的术语来在 Google 上找到某些内容。我知道 ifconfig -a 可以显示有关 NIC 的信息,但目前我还没有找到区分物理和虚拟的方法。此外,我最终将希望将其编程到 C 中,因此与 C 兼容的东西将是惊人的。

谢谢。很高兴回答所有问题。

答案1

瘦身将为您完成以下任务:

  sudo lshw -C network

例如我的wifi卡显示如下:

 *-network
   description: Wireless interface
   product: Centrino Advanced-N 6235
   vendor: Intel Corporation
   physical id: 0
   bus info: pci@0000:04:00.0
   logical name: wlan0
   version: 24
   serial: c8:f7:33:4c:cc:e1
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
   configuration: broadcast=yes driver=iwlwifi driverversion=3.11.0-15-generic firmware=18.168.6.1 latency=0 link=no multicast=yes wireless=IEEE 802.11abgn
   resources: irq:47 memory:e2500000-e2501fff

MAC 地址当然是序列号。请注意,即使你使用以下命令更改了 wifi 卡的明显 MC 地址麦克查格瘦身仍会显示真实的 MAC 地址,相反是否配置,显示更改后的内容。此外,没有提及在此硬件上构建的接口。

最后,根据其手册页,瘦身...

...目前支持 DMI(仅限 x86 和 IA-64)、OpenFirmware 设备树(仅限 PowerPC)、PCI/AGP、CPUID(x86)、IDE/ATA/ATAPI、PCMCIA(仅在 x86 上测试)、SCSI 和 USB。

这是我能找到的最完整的报道。

相关内容