Привет, коллеги! Ситуация знакомая до боли: смотрите на список арендованных адресов в роутере, а там полтора десятка устройств с ничего не говорящими именами вроде android-7f3a или вообще без имени. Кто из них ваш, кто соседский, а кто вообще непонятно чей? Первое, за что хочется зацепиться — MAC-адрес. В нём действительно зашит производитель, и по нему можно многое понять.

Но есть нюанс, из-за которого половина запросов в интернете звучит как «определил MAC, а производитель неизвестный, почему?». Сегодня разберём и то, как правильно вытащить вендора из адреса, и то, почему иногда это принципиально не работает — причём вы ничего не сделали не так.

Заодно посмотрим на реальные цифры реестра IEEE: сколько там вообще блоков, кто из вендоров занял больше всех и какие страны лидируют. Данные ниже — из нашей собственной копии реестра, не из чужих пересказов.

Оглавление


Что такое MAC-адрес и где в нём производитель

MAC-адрес — это 48 бит, то есть шесть байт, которые обычно записывают как шесть пар шестнадцатеричных цифр. Например, 00:1C:B3:11:22:33.

Адрес делится на две смысловые половины:

  • Первые три байта (00:1C:B3) — это OUI, Organizationally Unique Identifier. Блок, который производитель купил у IEEE.
  • Последние три байта (11:22:33) — серийная часть, её производитель раздаёт своим устройствам сам.

Отсюда простая арифметика: один блок OUI — это 224, то есть около 16,7 миллиона адресов. Именно поэтому крупные вендоры покупают не один блок, а десятки и сотни — устройств они выпускают больше.

Как узнать MAC-адрес в Windows, Linux, macOS и Android

Windows — в командной строке:

ipconfig /all

Ищите строку «Физический адрес» у нужного адаптера. Если нужен только список адаптеров и их адресов, короче будет так:

getmac /v

Linux — современный способ:

ip link show

MAC стоит после слова link/ether. Старый добрый ifconfig тоже работает, если пакет net-tools установлен.

macOS:

ifconfig en0 | grep ether

Android — «Настройки» → «О телефоне» → «Общая информация», там будет MAC-адрес Wi-Fi. Но именно на Android вас ждёт сюрприз, о котором ниже: показанный там адрес и адрес, который видит роутер, могут не совпадать.

Чужие устройства в своей сети удобно смотреть через ARP-таблицу — там сразу видны пары «IP — MAC»:

# Windows
arp -a

# Linux
ip neigh show

Форматы записи: двоеточия, дефисы и точки

Один и тот же адрес вы встретите в трёх видах, и это регулярно ломает чужие скрипты:

ЗаписьГде встречается
00:1C:B3:11:22:33Linux, macOS, большинство утилит
00-1C-B3-11-22-33Windows
001c.b311.2233Оборудование Cisco

Разделители — чистая косметика. Нормальный инструмент поиска должен принимать любой вариант: внутри всё равно всё сводится к двенадцати шестнадцатеричным символам. Регистр букв тоже роли не играет.

Как определить производителя

Механика простая: берём первые шесть шестнадцатеричных символов и ищем их в реестре IEEE. Реестр публичный, его выкладывают в открытом доступе одним CSV-файлом.

Руками это делать не обязательно — у нас есть поиск производителя по MAC-адресу: вставляете адрес в любом формате и сразу получаете вендора, страну регистрации блока и тип адреса. Под капотом там полная копия реестра, а не выборка из пары десятков популярных вендоров.

Если хочется своими руками, достаточно скачать реестр и грепнуть по нему:

curl -s https://standards-oui.ieee.org/oui/oui.csv -o oui.csv
grep -i "^MA-L,001CB3" oui.csv

MA-L,001CB3,"Apple, Inc.","1 Infinite Loop Cupertino CA US 95014"

Реестр IEEE в цифрах

Мы держим у себя актуальную копию реестра, так что можем показать не абстрактные рассуждения, а конкретный срез. На момент написания статьи в основном реестре MA-L числится 39 931 блок.

Кто занял больше всех блоков:

ПроизводительБлоков OUIЭто примерно адресов
Apple, Inc.1 55326 млрд
HUAWEI TECHNOLOGIES CO.,LTD1 39623 млрд
Cisco Systems, Inc1 24721 млрд
Samsung Electronics Co.,Ltd89415 млрд
Intel Corporate66611 млрд

А вот распределение по странам регистрации — оно неплохо отражает, где физически делают сетевое железо:

СтранаБлоков
США13 446
Китай9 700
Южная Корея2 678
Тайвань2 207
Япония1 918
Германия1 291

Важная оговорка: страна здесь — это адрес компании при регистрации блока, а не место сборки устройства. Роутер с американским OUI вполне может быть собран в Китае, и наоборот.

Почему производитель «неизвестен»: рандомизация MAC

Вот главная причина, по которой поиск по OUI сегодня всё чаще возвращает пустоту. Современные телефоны и ноутбуки специально подставляют случайный MAC-адрес при подключении к Wi-Fi — чтобы вас нельзя было отслеживать между сетями по постоянному идентификатору.

Так делают iOS, Android и Windows: для каждой сети генерируется свой адрес, и в реестре IEEE его, разумеется, нет. Никакой поиск не покажет вам «Apple» или «Samsung», потому что первые три байта такого адреса просто выдуманы устройством.

Хорошая новость: случайный адрес легко отличить от настоящего, и для этого не нужен никакой сервис — достаточно посмотреть на второй бит первого байта.

Два бита, которые всё объясняют

В самом первом байте адреса два младших бита несут служебный смысл.

  • Младший бит (I/G) — если он равен единице, адрес групповой (multicast), а не адрес конкретной сетевой карты.
  • Второй бит (U/L) — если он равен единице, адрес назначен локально, то есть его выдал не производитель. Это и есть признак рандомизации или ручной смены MAC.

На практике проще запомнить по второй цифре адреса. Если она 2, 6, A или E — перед вами локально администрируемый адрес, и искать производителя бессмысленно:

ПримерЧто это
00:1C:B3:...Обычный адрес производителя, ищется в реестре
02:1C:B3:...Локальный: рандомизация или ручная настройка
DA:A1:19:...Локальный (DA) — типичный случайный MAC телефона
01:00:5E:...Групповой (multicast), не адрес устройства

Наш инструмент показывает это отдельным полем — UAA (universally administered, то есть от производителя) или LAA (locally administered). Если видите LAA, дальше можно не копать: устройство намеренно спрятало свою принадлежность.

Когда вместо вендора показывается «IEEE Registration Authority»

Иногда поиск честно находит блок, но в качестве владельца показывает саму IEEE. В нашей копии реестра таких блоков 432, и это не ошибка.

Дело в том, что кроме больших блоков MA-L есть блоки поменьше — MA-M и MA-S. Их продают компаниям, которым не нужны 16 миллионов адресов, и один такой «крупный» префикс делится между множеством мелких владельцев. По первым трём байтам вы в этом случае определите только то, что адрес выдан через IEEE, а конкретного производителя придётся искать по более длинному префиксу.

Так что «IEEE Registration Authority» в ответе означает: устройство сделано небольшой компанией, купившей маленький блок. Довольно часто это IoT-железо и всякая китайская мелочь.

Зачем это нужно на практике

Несколько сценариев, ради которых всё это затевается.

  • Инвентаризация сети. Выгружаете ARP-таблицу с коммутатора, прогоняете MAC-адреса через реестр — и у вас появляется понимание, что у вас 40 рабочих станций одного вендора, десяток телефонов и три устройства, которых быть не должно.
  • Поиск чужого в Wi-Fi. Тут придётся учитывать рандомизацию, но железо попроще — камеры, принтеры, умные розетки — обычно рандомизацию не умеет и честно показывает вендора.
  • Разбор инцидента. Когда в логах остался только MAC, вендор сужает круг: одно дело сетевой принтер, другое — ноутбук.
  • Проверка партии оборудования. Если у «одинаковых» устройств из закупки разные OUI, это повод задать вопросы поставщику.

И сразу про ограничение, чтобы не было завышенных ожиданий: MAC-адрес виден только внутри одного сегмента сети. Через маршрутизатор он не проходит — на той стороне вы увидите MAC самого роутера, а не устройства за ним. Определить производителя устройства «где-то в интернете» по MAC невозможно в принципе.

Выводы

Коротко, если пролистали: производитель зашит в первых трёх байтах MAC-адреса, ищется по открытому реестру IEEE, в котором сейчас без малого 40 тысяч блоков. Apple, Huawei и Cisco держат больше тысячи блоков каждый, а почти четверть всех блоков зарегистрирована в Китае.

Если производитель не находится — сначала посмотрите на вторую цифру адреса. Двойка, шестёрка, A или E означают локальный адрес: телефон или ноутбук просто спрятался за случайным MAC, и это нормальное поведение современных устройств, а не поломка.

Проверить конкретный адрес быстрее всего в нашем поиске по MAC-адресу — он принимает любой формат записи и сразу говорит, настоящий это адрес производителя или локально сгенерированный. Удачных разборов и чистых сетей!

Попробуйте ScaniteX бесплатно!

Автоматизированная платформа для сканирования открытых портов и обнаружения активных сервисов в режиме онлайн.

Начните 24ч пробный период (промокод FREE10), чтобы протестировать все функции сканирования для безопасности вашего бизнеса.

Получить бесплатный триал