Скрипт сканування мережі (скануємо IP-мережі, визначаємо живі ІР)

Якось згубився в мене один мережевий пристрій. Ну нарулив я його і забув, яка там IP-адреса. 🙂

Перебравши по пам’яті кілька — зрозумів, що це не варто того часу. Покладемо цю задачу на машину, адже основна задача обчислювальних машин — робити за людей марудну одноманітну справу. А людям залишимо творчу діяльність та керування цими самими машинами. 😉

Що ж — до праці:

Для простоти реалізації було написано два однострічкових скрипти: перший сканує ІР-адреси в мережі, другий — фільтрує потрібні нам ІР-адреси.

1. Скрипт сканування мереж (пробує достукатися пінгом до всіх хостів всіх мереж з блоку 192.168.0.0/16 (тобто від 192.168.0.0 до 192.168.255.255) ):

date;time (for net in `seq 0 255`;do echo -e "\n\n Now scanning NET [${net}]\n"; for ip in `seq 0 255`;do echo -n "${ip},"; ( ping -q -f -w 2 192.168.${net}.${ip} >/dev/null 2>&1 & ) ;done; sleep 2; echo "DONE"; done);date

 

2. Скрипт фільтрації MAC-адрес на Ethernet-інтерфейсі eth121 з відсканованих хостів:
while true ; do arp -n|grep -F 'eth121'|grep -vF incomplete;sleep 1;done

Звісно, сам цей інтерфейс повинен бути в цій мега-мережі, тобто мати IP-адресу наприклад, 192.168.254.254 з маскою 255.255.0.0 (/16).

Таким чином, на сканування мережі з 65536 вузлів було затрачено (без жодного напрягу для нашого вузла) близько 11 хвилин при паралельному переборі всієї мережі проти близько 17 годин при послідовному переборі всіх IP-адрес.

Опубліковано у Linux, Tips&Tricks, Безпека, Всяка-всячина, Нотатки на колінці | Теґи: , , , , , . | Додати в закладки: постійне посилання на публікацію.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *