Мне нужно прочитать постоянный (сгоревший) 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
Сетевой адаптер имеет следующую информацию:
Версия ядра Linux: 2.6.32.13
Вопрос: могу ли я решить эту проблему с любым обновлением (драйвер, ядро и т. Д.)?
Кроме того, я делаю те же звонки с помощью ethtool ioctl
функция в C ++. Есть ли способ исправить это внутри кода? Или есть какой-нибудь другой способ получить постоянный MAC-адрес из EEPROM?
Если вы еще не нашли ответ, вы можете проверить это.
Взгляните на пару вещей.