1

Я хотел бы получить текстовый файл со списком, какие IP-адреса находятся в моей локальной подсети и к какому коммутатору Ethernet они подключаются. В идеале название машины было бы неплохо, но я могу решить это вручную.

Кто-то предложил NMAP. Я попробовал это, и я поражен количеством вариантов. Есть ли вариант, который дал бы мне такую информацию.

У меня такое ощущение, что информацию о коммутаторах сложнее найти, потому что они прозрачны для IP. Может кто-нибудь подсказать способ.

3 ответа3

3

использовать например

nmap -sP -PR 192.168.1.0/24

(Используйте соответствующий сетевой адрес и маску)

Для карты хостов. -sP пропускает сканирование портов, в то время как -PR запрашивает сканирование ARP, которое работает только в локальных сетях, но не может быть заблокировано брандмауэрами (на самом деле, может, но безумно нецелесообразно).

Вы можете отфильтровать это к образцу списка с некоторыми сценариями:

nmap -sP -PR 192.168.1.0/24 2>/dev/null |grep "appears to be up" |awk '{print $2}'

Чтобы получить физическое местоположение, вам нужен управляемый коммутатор. Хорошие управляемые коммутаторы ответят на SNMP и позволят вам запросить местоположение определенного MAC-адреса.

Сначала вам нужно сопоставить IP с MAC-адресами, вы можете попытаться обработать вывод nmap, но проще обратиться к системной таблице ARP (прочитайте /proc/arp в * nix или попробуйте команду arp ).

Если у вас есть MAC-адрес, стандартным способом получения порта через SNMP обычно является Q-BRIDGE-MIB, если ваш коммутатор обрабатывает VLAN, или (IIR) P-BRIDGE-MIB. Вы можете запросить его, например, с помощью инструментов net-snmp:

snmpget -v2c -c public 192.168.1.1 Q-BRIDGE-MIB::dot1qTpFdbPort.y.x.x.x.x.x.x

Где public - это имя сообщества SNMP, 192.168.1.1 - адрес коммутатора, y - идентификатор VLAN, а x - байты MAC-адреса в десятичном коде. Возможно, вам потребуется включить SNMP на коммутаторе, разрешить доступ с вашей станции, использовать другое имя сообщества и / или версию протокола.

Для коммутаторов, не поддерживающих VLAN, есть эквивалентные записи в PIRC-MIB iirc.

Чтобы увидеть, как работает кодирование адресов, вы можете использовать snmpwalk для получения полной таблицы переадресации коммутатора, например:

smpwalk -v2c -c public 192.168.1.1 Q-BRIDGE-MIB::dot1qTpFdbPort

Если у вас есть несколько коммутаторов, каждый MAC будет отображаться на правильном порту на правильном коммутаторе, а также на соответствующих магистральных портах других коммутаторов, поэтому вам потребуется способ отфильтровать магистральные порты.

1

Перечислите все хосты, использующие ваш шлюз (возможно, коммутатор (или маршрутизатор)


arp-scan -I eth0 -l

0

Ну, не знаю, какую ОС вы используете, но в некоторой степени вы можете найти информацию с вашего компьютера. Вы должны запустить инструмент wireshark (ethereal). Это будет вам по всем пакетам, путешествующим между сетями. Вы не получите список всех машин, но сможете увидеть множество сетей и машин. После этого вы можете проверить свою таблицу arp, а также найти IP-адрес компьютера, MAC-адрес. Ваша маска подсети должна указывать, сколько компьютеров разрешено в текущей сети.

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