NMAP - как узнать какие ip-адреса заняты в локальный сети

  • Михаил
  • 12 мин. на прочтение
  • 82
  • 20 Jan 2013
  • 20 Jan 2013

Многие почему-то предлагают использовать для поиска занятых IP-адресов в сети команду arp -a. Да, она показывает список адресов. Правда её результат вывода очень далек от реальной картины. Эта команда показывает содержимое ARP-таблицы вашего компьютера. Когда Вы взаимодействуете с любым компьютером в сети, операционная система запоминает его IP-адрес и заносит его специальную таблицу. Называется она ARP-таблица. Вызывая команду arp -a, Вы просите свою ОС показать содержимое этой таблицы. И больше ничего.

Пожалуй, есть только одна консольная утилита собирающая все IP-адреса в сети, на которую стоит обратить внимание – это Nmap. Это даже не утилита, а полноценный сетевой сканер, который может сравнится по возможностям с XSpider. Если Вы начинающий системный администратор, то стоит изучить Nmap, так как это один из самых главных инструментов для знакомства с новой сетью для любого ITшника. Также может использоваться в качестве инструмента сетевого мониторинга.

Nmap — это бесплатный сетевой сканер, версия которого есть как под Windows, так и под Linux. Изначально работа с nmap реализована в консоли, но разработчики подсуетились и сделали графический интерфейс – ZenMap

Установка Nmap

Для Linux Mint, Ubuntu и Debian можно установить nmap из официального репозитория:

apt install nmap -y
yum install nmap -y
.....

Для Windows можно загрузить дистрибутив с официального сайте Nmap — https://nmap.org

Как найти все IP-адреса с помощью Nmap?

Стоит оговорится сразу, что у этой программы множества ключей запуска, с которыми лучше ознакомится в MAN-документации или в help`е. Стоит сказать, что с ее помощью можно даже проверить вашу систему на ddos-атаку.

Для нашей задачи нужно узнать IP`ишник или подсеть из которой нам выдан IP-адрес. В Windows это можно сделать консольной командой ipconfig, а в Linux – ifconfig.

У нас в примере используем Centos, поэтому команда такая:

ip addr

Наш IP-адрес из вывода выше – 172.17.100.2, а подсеть соответственно — 172.17.100.0. Так как мы хотим просканировать всю нашу подсеть, будем использовать маску подсети 255.255.255.0. В сокращенном варианте это будет выглядеть так 172.17.100.2/24

Для поиска незанятых IP-адресов в сети, выполняем команду:

nmap -v -sP 172.17.100.2/24

Здесь можно указать как наш IP-адрес, так и адрес подсети. Это не важно.

Получаем список IP-адресов , которые используются в данный момент:

Из этого видно, что заняты IP-адреса: 172.17.100.3, 172.17.100.10 и наш 172.17.100.2

Круто, не правда ли?..

Если нужно вывести только не занятые IP-адреса, то вот команда:

nmap -v -sP 172.17.100.2/24 | grep down

Стоит понимать, что вывод этой команды показывает нам только включенные компьютеры сети. Чтобы получить реальную картину занятости IP-адресов, нужно выполнить такое сканирование несколько раз в течении рабочего дня.