3

Я пытаюсь получить MAC-адреса компьютера с Linux. Я хочу только физические сетевые карты, а не виртуальные. Я занимался поиском, и, возможно, я не подбираю правильные слова, чтобы найти что-то в Google. Я знаю, что ifconfig -a отображает информацию о сетевых картах, но в настоящее время я не вижу способа дифференцировать физическое и виртуальное. Также я собираюсь в конечном итоге запрограммировать это на C, так что то, что совместимо с C, было бы удивительно.

Благодарю. С удовольствием отвечу на все вопросы.

1 ответ1

1

lshw сделает это за вас:

  sudo lshw -C network

Например, моя карта Wi-Fi отображается следующим образом:

 *-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-адрес, конечно же, серийный номер. Обратите внимание, что даже если вы измените кажущийся MC-адрес Wi-Fi-карты с помощью Macchanger, lshw по- прежнему будет отображать истинный MAC-адрес, в отличие от ifconfig, который отображает измененный. Также нет упоминания об интерфейсах, построенных на этом оборудовании.

Наконец, в соответствии с его справочной страницей, lshw...

... в настоящее время поддерживает DMI (только для x86 и IA-64), дерево устройств OpenFirmware (только для PowerPC), PCI/AGP, CPUID (x86), IDE/ATA/ATAPI, PCMCIA (только для x86), SCSI и USB.

что является наиболее полным освещением, которое я мог найти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .