Как узнать какие IP-адреса заняты в локальный сети
Узнать какие IP-адреса заняты в локальной сети на данный момент задача одновременно и простая и сложная.
Простота ее заключается в том, что есть как маленькие консольные утилиты, так и большие сетевые сканеры, которые позволяют найти все сетевые адреса в локальной сети. Запустил и есть данные.
А сложность в том, что все они показывают незанятые IP-адреса только на текущий момент времени. Запустил – увидел, обстановку. А часть компьютеров может быть просто отключена.
Есть несколько способов поиска IP-адресов в сети, но все их можно разделить на 2:
- графические;
- консольные инструменты.
Первые позволяют найти все используемые сетевые адреса с помощью удобного и привычного для windows-пользователя интерфейса.
Консольные же утилиты выбирают более опытные пользователи. К тому же консольные утилиты можно легко использовать в скриптах автоматизации, что делает их более универсальными инструментами.
Давайте начнем с графических.
Графические способы поиска всех занятых lP-адресов в локалке
Для Windows
Для операционной системы Windows есть очень много программ: начиная от маленьких сканеров как Advanced IP Scanner, до больших сетевых сканеров угроз безопасности таких как XSpider. Последний для нашей задачи хоть и подходит, но его функционал избыточен и сетевой сканер в нем – это малая и не основная часть.
Для простого поиска всех адресов в сети нужно использовать Advanced IP Scanner от компании Radmin. Это бесплатный инструмент, который Вам поможет в поиске используемых IP-адресов.
Вы также можете воспользоваться Angry IP Scanner Версия этой программы есть и для Linux и для Windows.
Есть еще много аналогов, к примеру LanScope, Network Scanner от LizardSystems и т.д.
Для Linux Mint, Ubuntu и Debian
Для Linux есть графический сканер Angry IP Scanner.
И еще есть 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-адресов, нужно выполнить такое сканирование несколько раз в течении рабочего дня.
Теги: сеть
Реально круто, спасибо.
Не ну конечно полезная фишка, но это актуально при условии что все компы в сети в данный момент работают, а то можно же кому ньть выдать IP на данный момент выключенной тачки. Старый добрый метод ведения ручками лога выдачи IP адресов этому не подвержен.
Все правильно, ваш метод рабочий, но с ним чем больше компьютеров в сети, тем больше проблем
Хотелось бы поправить автора. Под винду есть пакет nMap – ZenMap GUI. Качается с оф. сайта nMap
Спасибо, за уточнене. Добавил в статью.
реально тупо, если в сети например 100 пк из них обычно включено 70 то это реально дать уже занятый ip новому ПК. Что стоит развернуть DHCP на любой машине и забыть про эту проблему раз и навсегда
Реально тупо – это когда в больших компаниях как раз развернуто ДХЦП… так как в случае необходимости сложнее отследить трафик. А если речь идет о небольших сегментах – то да, дхцп поднял и радуйся.
Но автору все-равно спасибо!
В больших сетях как раз без DHCP «не выжить».
Если Вам так нравится «статика», то можете на DHCP-сервере указать всем статические IP-адреса.