ethtool получить постоянный MAC-адрес возвращает все 0

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

Я пытался с помощью 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 ENGINE

Версия ядра Linux: 2.6.32.13

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

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

0

Решение

Если вы еще не нашли ответ, вы можете проверить это.

https://serverfault.com/questions/316976/can-i-get-the-original-mac-address-after-it-has-been-changed

1

Другие решения

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

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

По вопросам рекламы [email protected]