2013-09-05 3 views
0

Мне нужно прочитать постоянный (сожженный) MAC-адрес сетевого адаптера. Поскольку MAC-адрес можно легко подделать, мне нужно прочитать реальный, который написан на EEPROM. Мне нужно сделать это с помощью C++ в Linux.ethtool получить постоянный MAC-адрес возвращает все 0's

Я пробовал использовать ethtool, что неплохо и прекрасно работает. Однако в некоторых системах это не работает как намеренный.

ethtool -P eth0 

возвращает это:

Permanent address: 00:00:00:00:00:00 

и

ethtool -e eth0 

возвращает это:

Cannot get EEPROM data: Operation not supported 

Сетевой адаптер имеет следующую информацию:

  • водитель: ucc_geth
  • версия: 1,1
  • прошивки версия: N/A
  • шины Информация: QUICC ДВИГАТЕЛЬ

Linux ядро ​​версии: 2.6 .32.13

Вопрос: могу ли я исправить эту проблему при любом обновлении (драйвер, ядро ​​и т. Д.)?

Кроме того, я делаю те же звонки ethtool с помощью функции ioctl в C++. Есть ли способ исправить это внутри кода? Или есть ли другой способ получить постоянный MAC-адрес из EEPROM?

ответ

0

Взгляните на пару вещей.

  1. Посмотрите на пакеты на проводе (используя сниффер), исходящие от этой сетевой платы, и увидите используемый MAC-адрес.
  2. Посмотрите на вывод «ifconfig -a eth0». Если MAC-адрес совпадает с адресом, то вы можете получить этот MAC-адрес, используя mechanism that ifconfig uses.
+0

Таким образом, это означает, что пакеты на проводе имеют реальный (постоянный) MAC-адрес, даже если реальный MAC-адрес будет изменен? –

+1

Конечно нет. Это нарушит цель изменения MAC. – MSalters

 Смежные вопросы

  • Нет связанных вопросов^_^