Как конвертировать IPv6 в MAC-адрес
Вы можете восстановить MAC-адрес из IPv6-адреса только тогда, когда
идентификатор интерфейса IPv6 был получен из этого MAC-адреса методом
EUI-64. Чаще всего это встречается у старых link-local адресов,
начинающихся с fe80::, и у некоторых адресов, настроенных
автоконфигурацией без состояния.
Когда это работает
Такое обратное преобразование работает, если последние 64 бита IPv6-адреса по-прежнему содержат идентификатор интерфейса EUI-64.
- Идентификатор интерфейса был построен из 48-битного MAC-адреса.
- В середине по-прежнему находятся байты
ff:fe. - Адрес не был создан расширениями приватности или другой схемой рандомизации.
Как выполняется преобразование
Конвертер восстанавливает MAC-адрес в несколько шагов:
- Считывает последние 64 бита IPv6-адреса.
- Удаляет вставленные в середину идентификатора интерфейса байты
ff:fe. - Инвертирует бит universal/local в первом байте.
- Форматирует оставшиеся 48 бит как стандартный MAC-адрес.
Почему MAC не появляется
Результата может не быть по нескольким причинам:
- IPv6-адрес синтаксически некорректен.
- Адрес корректен, но не был сгенерирован из MAC-адреса с помощью EUI-64.
- Используется приватный адрес, stable-random адрес, DHCPv6 или другой способ назначения, не связанный с MAC.