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

Сканирование IP-сети

Узнать какие IP-адреса заняты в локальной сети на данный момент задача одновременно и простая и сложная.

Простота ее заключается в том, что есть как маленькие консольные утилиты, так и большие сетевые сканеры, которые позволяют найти все сетевые адреса в локальной сети. Запустил и есть данные.

А сложность в том, что все они показывают незанятые IP-адреса только на текущий момент времени. Запустил – увидел, обстановку. А часть компьютеров может быть просто отключена.


Есть несколько способов поиска IP-адресов в сети, но все их можно разделить на 2:

  1. графические;
  2. консольные инструменты.

Первые позволяют найти все используемые сетевые адреса с помощью удобного и привычного для windows-пользователя интерфейса.

Консольные же утилиты выбирают более опытные пользователи. К тому же консольные утилиты можно легко использовать в скриптах автоматизации, что делает их более универсальными инструментами.

Давайте начнем с графических.

Графические способы поиска всех занятых lP-адресов в локалке

Для Windows

Для операционной системы Windows есть очень много программ: начиная от маленьких сканеров как Advanced IP Scanner, до больших сетевых сканеров угроз безопасности таких как XSpider. Последний для нашей задачи хоть и подходит, но его функционал избыточен и сетевой сканер в нем – это малая и не основная часть.

Для простого поиска всех адресов в сети нужно использовать Advanced IP Scanner от компании Radmin. Это бесплатный инструмент, который Вам поможет в поиске используемых IP-адресов.

Интерфейс Advanced IP Scanner

Вы также можете воспользоваться Angry IP Scanner Версия этой программы есть и для Linux и для Windows.

Интерфейс Angry IP Scanner для Windows

Есть еще много аналогов, к примеру LanScope, Network Scanner от LizardSystems и т.д.

Для Linux Mint, Ubuntu и Debian

Для Linux есть графический сканер Angry IP Scanner.

Интерфейс Angry IP Scanner для Linux

И еще есть Nmap с графической оболочкой Zenmap, о котором речь пойдет ниже.

Консольные утилиты

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

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

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

Установка Nmap

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

apt install nmap

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

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

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

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

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

ifconfig
wlan0  Link encap: Ethernet  HWaddr 0c:60:76:0a:4f:cd
          inet addr: *192.168.1.3*  Bcast: 192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::e60:76ff:fe0a:4fcd/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:61131 errors:0 dropped:0 overruns:0 frame:0
          TX packets:43224 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen: 1000
          RX bytes:74308035 (74.3 MB)  TX bytes:6574514 (6.5 MB)

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

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

nmap -v -sP 192.168.1.3/24

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

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

nmap -v -sP 192.168.1.3/24
Starting Nmap 5.21 ( https://nmap.org ) at 2011-06-27 20:22 OMSST
Initiating Ping Scan at 20:22
Scanning 256 hosts [2 ports/host]
Completed Ping Scan at 20:22, 2.93s elapsed (256 total hosts)
Initiating Parallel DNS resolution of 256 hosts. at 20:22
Completed Parallel DNS resolution of 256 hosts. at 20:22, 0.00s elapsed
Nmap scan report for 192.168.1.0 [host down]
Nmap scan report for 192.168.1.1
Host is up (0.0032s latency).
Nmap scan report for 192.168.1.2 [host down]
Nmap scan report for 192.168.1.3
Host is up (0.00096s latency).
Nmap scan report for 192.168.1.4 [host down]
...
Nmap scan report for 192.168.1.253 [host down]

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

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

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

nmap -v -sP 192.168.1.3/24 | grep down
Nmap scan report for 192.168.1.0 [host down]
Nmap scan report for 192.168.1.4 [host down]
Nmap scan report for 192.168.1.5 [host down]
Nmap scan report for 192.168.1.6 [host down]
Nmap scan report for 192.168.1.7 [host down]
Nmap scan report for 192.168.1.8 [host down]
Nmap scan report for 192.168.1.9 [host down]
...
Nmap scan report for 192.168.1.253 [host down]

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

Теги:

Комментарии

Граватар пользователя «[e]Bu$ter»
[e]Bu$ter, 27 июня 2011 г. 23:11 #

Реально круто, спасибо.

Граватар пользователя «kreuz»
kreuz, 28 июня 2011 г. 09:06 #

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

Граватар пользователя «Mut@NT»
Mut@NT, 28 июня 2011 г. 12:28 #

Все правильно, ваш метод рабочий, но с ним чем больше компьютеров в сети, тем больше проблем

Граватар пользователя «GlooMLynX»
GlooMLynX, 29 июня 2011 г. 11:28 #

Хотелось бы поправить автора. Под винду есть пакет nMap – ZenMap GUI. Качается с оф. сайта nMap

Граватар пользователя «Зюзгин Иван»
Зюзгин Иван, 5 января 2021 г. 03:32 #

Спасибо, за уточнене. Добавил в статью.

Граватар пользователя «palexa»
palexa, 29 апреля 2012 г. 23:43 #

реально тупо, если в сети например 100 пк из них обычно включено 70 то это реально дать уже занятый ip новому ПК. Что стоит развернуть DHCP на любой машине и забыть про эту проблему раз и навсегда

Граватар пользователя «faramund»
faramund, 22 августа 2013 г. 20:18 #

Реально тупо – это когда в больших компаниях как раз развернуто ДХЦП… так как в случае необходимости сложнее отследить трафик. А если речь идет о небольших сегментах – то да, дхцп поднял и радуйся.
Но автору все-равно спасибо!

Граватар пользователя «Зюзгин Иван»
Зюзгин Иван, 5 января 2021 г. 03:36 #

В больших сетях как раз без DHCP «не выжить».

Если Вам так нравится «статика», то можете на DHCP-сервере указать всем статические IP-адреса.




В качестве аватарки используется сервис - gravatar.com



IT-событие
День выключения (Shutdown Day)
День выключения (Shutdown Day)