Windows 95/98/NT FAQ

Как получить список соответствия MAC адресов IP адресам в сети?


Самый простой путь получения такого списка - это провести ping каждого host'а в подсети и просмотреть ARP кэш, однако это требует большого времени и данные в кэше хранятся всего в течение 2 минут. Альтернативный вариант - пинговать "broadcast mask" подсети (невозможно пинговать всю сеть, т.к. вы непосредственно связаны только с нодами (узлами) в вашей подсети, все другие запрoсы проходят через "gateways" (шлюзы), так что вы получите в кэше ARP данные только для шлюзов (кроме данных по подсети)).

Что такое "Broadcast mask"? "Broadcast mask" легко получить если маска подсети в формате 255.255.255.0 или 255.255.0.0 . Например, если IP адрес 134.189.23.42 и маска подсети 255.255.0.0, то "broadcast mask" будет 134.189.255.255. Но в более общем случае, для определения "broadcast mask" выполните следующее:

  1. Для каждого бита из маски подсети, равного 1, соответствующий бит в "broadcast mask" устанавливается равным, соответствующему биту в адресе.
  2. Для каждого бита из маски подсети равного 0, соответствующий бит в "broadcast mask" устанавливается равным 1.

например, IP адрес 158.234.24.98 и маска подсети 255.255.248.0

Network

Host

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0
1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1

Байт 1

Байт 2

Байт 3

Байт 4

Первая строка - маска подсети 255.255.248.0, вторая строка IP адрес 158.234.24.98 и третья строка "broadcast mask" 158.234.31.255.

Ну и теперь для получения списка соответствия MAC адресов IP адресам выполните:

ping <broadcast mask>
arp -a

Для записи результатов в файл, добавьте "> filename" (например, arp -a > iptomac.lst).


На первую страницу    Раздел Windows NT    Назад

Copyright © 2000. Andrey Harchenko. При перепечатке ссылка на http://WinFAQ.com.ru обязательна.
Авторские права на оригиналы статей: Microsoft Corporation, SavillTech Ltd, Simon Clausen