Obtenha os endereços MAC do NIC físico no Linux

3

Estou tentando obter os endereços mac de uma máquina Linux. Eu só quero o NIC físico, não os virtuais. Eu tenho feito algumas pesquisas e talvez eu não esteja usando os termos certos para encontrar algo no Google. Eu sei ifconfig -a para mostrar informações sobre NIC, mas não vejo uma maneira no momento de diferenciar física vs virtual. Também vou querer programar isso em C eventualmente, então algo que é compatível com C seria incrível.

Obrigado. Feliz por responder a todas e quaisquer perguntas.

    
por MasterGberry 02.02.2014 / 00:57

1 resposta

1

lshw fará isso por você:

  sudo lshw -C network

Por exemplo, meu cartão de Wi-Fi é exibido da seguinte forma:

 *-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

O endereço MAC é, obviamente, o número de série. Observe que, mesmo se você alterar o endereço MC aparente da placa wifi com macchanger , lshw ainda exibirá o verdadeiro endereço MAC, ao contrário de ifconfig , que exibe o alterado. Além disso, não há menção de interfaces construídas nesta peça de hardware.

Por fim, de acordo com sua página de manual, lshw ...

...currently supports DMI (x86 and IA-64 only), OpenFirmware device tree (PowerPC only), PCI/AGP, CPUID (x86), IDE/ATA/ATAPI, PCMCIA (only tested on x86), SCSI and USB.

qual é a cobertura mais completa que pude encontrar.

    
por 02.02.2014 / 09:34