1

Я использую arp -an в Mac OS X для вывода списка всех устройств в моей сети, но (насколько я понимаю) это просто перечисляет устройства в одной подсети. Можно ли перечислить все устройства в сети, а не только подсеть моего компьютера?

Я не знаю, возможно ли это с помощью команды arp , или я могу автоматически переключать подсети и запускать arp?

3 ответа3

2

ARP перечислит только те адреса, которые находятся в той же подсети, что и ваш компьютер.

Чтобы сделать то, что вы хотите, вы можете использовать nmap для проверки всех компьютеров, которые подключены к определенной сети.

Или Если все ваши устройства настроены через DHCP - да, DHCP может обслуживать несколько подсетей, в зависимости от используемого DHCP-сервера - вы можете проверить файл аренды DHCP.

Редактировать по запросу:

nmap -n -sn 10.0.0.0/24

или же

nmap -n -sP 10.0.0.0/24

в зависимости от того, какая у вас версия nmap (-sn для более новых версий).

замените 10.0.0.0/25 для каждой вашей подсети.

2

Из вашей системы не будет способа сделать это. Это можно сделать из маршрутизатора, в котором находятся указанные подсети. Ваш компьютер никогда не узнает, что это даже часть подсети, если она есть. Таким образом, ваш ARP будет показывать только информацию в вашей подсети.

1

Вашему компьютеру нужно только отслеживать записи ARP для компьютеров в одной подсети. Для всех остальных компьютеров он проходит через роутер, чтобы туда попасть. Маршрутизатор хранит записи arp для всех известных ему устройств. При этом, если ваш компьютер подключен к нескольким подсетям (обычно с использованием нескольких сетевых карт или нескольких VLAN, одной сетевой карты), то он будет иметь записи ARP для всех сетей, к которым он подключен.

Если вам не нужны MAC-адреса, используйте другой инструмент, основанный на IP-адресе. Если у вас есть доступ для запроса вашего основного маршрутизатора с помощью инструментов SNMP, вы можете получить много информации. Если вы знаете только свои диапазоны IP-адресов, то вы можете написать простой скрипт цикла или использовать сетевой сканер для проверки связи с каждым адресом. Как уже упоминалось, nmap - отличный инструмент для этого.

Если вам нужен MAC-адрес для устройства вне вашей подсети, для некоторых типов устройств могут быть хитрости. Например, в сети Windows вы можете использовать Windows nbtstat -a hostname для возврата информации NetBIOS на определенной рабочей станции, на которой включен NetBIOS. Я не уверен, что все доступно в мире OS X. Для некоторых принтеров вы можете запросить их страницы конфигурации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .