我正在尝试获取 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。
这是我能找到的最完整的报道。