В моей работе много компьютеров, и я хочу пошутить. Я могу закрыть компьютер по сети, но мне сложно найти IP-адреса.
Как я могу легко найти все онлайн IP-адреса от 192.168.1.aa до 192.168.1.zz?
networking
Эрик Карвалью
источник
источник
angry ip scanner
Ответы:
Как правило,
nmap
это довольно полезно для быстрого сканирования сетей.Чтобы установить nmap, введите в терминале следующую команду:
После установки приложения введите следующую команду:
Это покажет вам, какие хосты ответили на запросы ping в сети между 192.168.1.0 и 192.168.1.255.
Для более старых версий Nmap используйте
-sP
:Дополнительные ссылки см. На следующих страницах:
Руководство по установке NMAP
Справочное руководство по NMAP
Это очень полезный инструмент для изучения.
источник
Если все компьютеры в вашей сети являются Ubuntu или любым другим дистрибутивом, использующим
avahi-daemon
( DNS-SD ), вы можете получить подробный список (с именем хоста и IP-адресом), выполнив:Если вы хотите знать все IP-адреса, используемые в вашей сети, вы можете использовать
arp-scan
:Поскольку он не установлен по умолчанию, вам придется установить его с
sudo apt-get install arp-scan
.arp-scan
отправлять пакеты ARP в локальную сеть и отображать полученные ответы, поэтому он показывает даже хосты, защищенные брандмауэром (которые блокируют трафик на основе IP-пакетов).источник
arp-scan
не находит все устройства, связанные с моей беспроводной сетью. Теперь, например,sudo arp-scan 192.168.2.0/24
показывает 2 результата (.1 и .1), аnmap -sn 192.168.2.0/24
показывает 4 результата (.1, .2, .3 и .4). Итак, кажется, чтоnmap
это более точно (я точно знаю, что к сети подключено 4 устройства). Почему это?nmap
.arp-scan
это мило !Примечание для читателя : Оригинальный ответ был опубликован некоторое время назад и в то время, когда я только изучал сценарии оболочки. Смотрите обновленную версию ниже для нового и улучшенного скрипта, который работает намного быстрее.
Оригинальный ответ
nmap
был бы моим выбором № 1, но что, если у вас его нет? Самодельный способ будет с помощью сценария ping, который проходит через каждый возможный IP-адрес в сети вручную. Здесь мы имеем только цикл while, где мы устанавливаем последнее число в адресе, делаем одиночный пинг по адресу, проверяем, выполнена ли команда успешно или нет (и если она прошла успешно, то, очевидно, хост работает) иprintf
оператор. Быстро и грязно, мне потребовалось около 10 минут, чтобы написать его, но время выполнения могло бы быть немного медленным, хотя.Пересмотренный ответ
Первоначально я опубликовал этот ответ в августе 2015 года. С тех пор я узнал немного больше о сценариях оболочки, и как только я увидел этот сценарий, я подумал, что будет хорошей идеей вернуться к этому ответу, чтобы добавить несколько улучшений. Вот несколько идей:
Сценарий явно медленный и
ping
ждет ответа от хоста. По умолчаниюping
для двух RTT, которые могут варьироваться в зависимости от того, насколько перегружена ваша сеть, и, насколько я понимаю, протокол TCP удваивает время ожидания каждый раз (по крайней мере, в соответствии с этим ). Так что мы могли бы заставитьping
тайм-аут с-w 1
флагом. Поскольку у нас есть 256 адресов, и мы предполагаем, что для каждого адреса 1 секунда, сценарий займет около 256/60 = 4,27 минуты.Выполнение команды, а затем захват ее состояния выхода
$?
не было действительно необходимым.if ... then;...fi
Может работать по командам напрямую. Другими словами, достаточно сделать это:printf
Команду можно переписать в виде так:Это скорее стилистическое изменение, но оно согласуется с тем, как
printf
работает и как выглядит во многих других языках, с кавычкой"$NUM"
переменной. Цитировать здесь не нужно - поскольку мы имеем дело только с числами, нам не нужно ожидать разделения слов из-за наличия пробелов в переменной.Намного лучшего улучшения производительности можно добиться, если мы породим несколько фоновых процессов. Сценарий редактирования ниже делает именно это. Я вставил
ping
иprintf
в функциюpingf
(да, банальное имя, я знаю). Теперь есть еще однаmain
функция, которая выполняет зацикливание и вызовpingf
.Насколько лучше это работает? Неплохо, на самом деле, занимает считанные секунды.
Вещи, чтобы помнить
источник
Netdiscover может быть вашим ответом.
Для установки через терминал:
пример использования:
IP с MAC-адресами будет отображаться на вашем терминале. Смотрите скриншот
надеюсь, поможет вам
ссылка
источник
*** buffer overflow detected ***: netdiscover terminated
.fping
отличный инструмент для сканирования нескольких хостов в сети через ICMP. Если он не установлен, вы можете установить его:fping
отправляет пакеты ICMP ECHO_REQUEST и помечает хост как Up, если он получает ECHO_RESPONSE от хоста.Например, для сканирования хостов подсети
192.168.1.0/24
вы можете сделать:Для определенного количества хостов, например, от
192.168.1.15
до192.168.1.140
:fping
настраивается, например, сколько пакетов будет отправлено, время ожидания ответа, формат вывода и т. д.Проверьте,
man fping
чтобы получить больше идей.источник