Найти компьютеры сети linux

Как получить список ip-адресов в локальной сети?

Подскажите, пожалуйста, как получить список ip-адресов всех хостов локальной сети (192.168.0.ххх)?

В сети на всех компьютерах есть либо windows, либо linux+samba, поэтому я пробовал nmblookup ‘*’. Но в список не попадает более трети хостов. Оказалось, что это нормальное поведение, потому что nmblookup долго ответа не ждет и многие просто не успевают ответить.

Можно ли надежно получить список всех хостов?

Re: Как получить список ip-адресов в локальной сети?

nmap -sP -n 192.168.0.0/24
nmap -sP -n 192.168.0.0/24|grep «^Host»|cut -f 2 -d ‘ ‘

Re: Как получить список ip-адресов в локальной сети?

Спасибо за помошь. Но nmap тоже не все выводит. У меня нашлось только 13 хостов, в то время как nmblookup нашел 15, а всего их 23.

Может быть можно timeout указать какой-нибудь?

$ nmap -sP -n 192.168.0.0/24|grep «^Host»|cut -f 2 -d ‘ ‘|wc 13 13 172 $ nmblookup ‘*’|grep » «|wc 15 30 288

Re: Как получить список ip-адресов в локальной сети?

Сорри, форматирование подкачало:

$ nmap -sP -n 192.168.0.0/24|grep «^Host»|cut -f 2 -d ‘ ‘|wc

$ nmblookup ‘*’|grep » «|wc

Re: Как получить список ip-адресов в локальной сети?

Re: Как получить список ip-адресов в локальной сети?

nmap -PR ‘192.168.0.*’

Re: Как получить список ip-адресов в локальной сети?

Re: Как получить список ip-адресов в локальной сети?

ICMP — не выход. я например всегда запрещаю кернелу отвечать на реквесты.
может быть s/ping/arping/ попробовать?

Re: Как получить список ip-адресов в локальной сети?

Re: Как получить список ip-адресов в локальной сети?

Спасибо за ответы.
В итоге дошел до написания простого скрипта на питоне,
который параллельно запускает опрос всех возможных ip’шников.
В принципе, это то же самое, что и предложенный shell-скрипт:

Источник

Отобразить список компьютеров в локальной сети в Linux

Я — веб-разработчик, который пытается получить лучший контроль над безопасностью. Я пытаюсь найти способ (на дистрибутивах на базе Linux /Debian), чтобы перечислить все компьютеры в той же локальной сети, на которых мой нетбук включен. Я попробовал «arp -n», но я не считаю, что это полный список, так как мой iPhone находится на том же Wi-Fi-маршрутизаторе, что и мой нетбук, и это не пришло. Есть ли лучший способ получить полный список машин, которые используют один и тот же шлюз?

10 ответов

Получить nmap . Это программа Trinity, используемая в Matrix, и вы можете выполнить сканирование, чтобы найти все устройства, подключенные к локальной сети, в которой вы находитесь, и многое другое.

Это то, что я использую, nmap и адрес, используя блок-схему CIDR для сети, которую вы хотите отсканировать. Сначала вам нужно установить nmap, поскольку он не может быть предварительно установлен с вами дистрибутивом. На Ubuntu:

Читайте также:  Wuauserv отсутствует windows 10

Затем введите свой сетевой адрес, используя ifconfig:

вывод ifconfig для интерфейса, который я хочу проверить:

Используйте inet addr и Mask для определения сетевого адреса в нотации CIDR, подробнее о CIDR здесь . Адрес:

Запустите nmap с использованием параметра -sP, который будет сканировать не дальше, чем проверка, находится ли хост в сети:

nmap будет выглядеть примерно так:

Вот и все, если вам нужна дополнительная помощь с nmap, см. официальную документацию nmap или выполните:

arp -n показывает только ваши компьютеры в вашей локальной сети, о которых уже говорила ваша машина. Вы можете получить этот список, чтобы заполнить его, указав широковещательные и общедоступные адреса многоадресной рассылки:

«Все те» (в двоичном) широковещательном адресе. Обратите внимание, что большинство стеков IP переведет это на широковещательные адреса подсети для всех подключенных подсетей:

Широковещательный адрес подсети для текущей подсети. Предположим, вы используете 192.168.1.0/24:

Многоадресный адрес «все хосты». Мне это очень нравится, потому что более вероятно, что хосты будут настроены для других IP-подсетей, которые подключаются к той же локальной сети Ethernet, что и вы:

Обратите внимание, что этот метод и другие методы, о которых я уже упоминал в других ответах до сих пор, ищут только хосты с IP-доступом в текущей сети. Это, вероятно, все, о чем вам нужно заботиться, но злоумышленник может заглянуть или сделать что-то плохое в сети, не будучи видимым через IP.

ip neigh и hosts . NO nmap required /NO sudo required .

Основываясь на этом, вы можете создать скрипт Python:

(или просто arp . Я этого раньше не видел)

Я не нашел удовлетворительных ответов, поэтому я решил попробовать. В конце концов, в FAQ часто предлагается контекст ссылок .

nmap отлично, если немного запутать. Вот что я запустил, чтобы обнаружить локальные сетевые устройства, которые в основном доступны для копирования. nmap -sP (или nmap -sn ) сканирует пинг . Существуют и другие варианты «обнаружения узла», например, с помощью nmap -sL или nmap -Pn .

Способ № 1.

Путь № 2. Я знаю, что это работает, но я не могу сказать, правильно ли это сделать.

Я был бы рад узнать, есть ли более эффективные способы. До тех пор я придерживаюсь этого.

Вы можете попробовать выполнить ping всю данную подсеть с помощью небольшого сценария оболочки linux, например

Охота — это инструмент командной строки, способный создавать список машин поскольку они транслируют по сети информацию. Он использует данные TCP, UDP, ICMP и ARP для создания списка активных MAC-адресов в сети. Это пассивный инструмент, который работает, слушая провод.

Чтобы проверить статус диапазона IP-адресов, это приятно и просто:

  • В предыдущих версиях Nmap -sn был известен как -sP

Я сделал это в Mac OS X (основанный на BSD). Я не уверен, есть ли у версии Linux какие-либо отличия.

Для более компактного списка подключенных устройств:

nmap -sL 192.168.0.* будет перечислять все IP-адреса в подсети и отмечать те, у которых есть имя:

Поскольку все интересные записи начинаются со скобок ( и цифры 1 , мы фильтруем для этого с помощью | grep \(1 (обратная косая черта необходима для удаления скобок)

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

1. Альтернативное решение, если широковещательные сообщения и nmap недоступны:

2a. или просто спросите сервер доменных имен :

2b. без awk

подключает все pingable сетевые устройства в подсети 192.168.2.0/24 параллельно (чтобы сократить время выполнения). Впоследствии arp должно отображаться каждое устройство, на которое он ответил.

Читайте также:  Усилитель звука для linux

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

  • seq 254 для создания всех чисел от 1 до 254 (для всех номеров от 100 до 150: seq 100 150 ) литий>
  • xargs вызывает ping и заменяет «IP» ( -iIP ) с кодом seq от stdin, поэтому 192.168.2.IP изменится на 192.168.2.1 для первого номера seq , -P указывает количество параллельных ping процессов xargs должен начинаться, я выбираю ту же сумму +1, что и адреса (= 254) im.
  • ping с ip-адресом, измененным xargs ( 192.168.2.IP ) и только один раз ( -c1 ); вы должны использовать тот же идентификатор, что и для xargs, в аргументе -i в этом случае IP
  • grep time= , чтобы удалить каждую строку, содержащую избыточную информацию, нас интересуют только ответы, которые обеспечивают время в оба конца (= получил ответ)
  • arp -a для отображения допустимых пар (ip)

Я вызываю эту команду pingall и делает ее доступной по псевдониму в

Источник

Показать список компьютеров в локальной сети в Linux

Я веб-разработчик, который пытается лучше справиться с безопасностью. Я пытаюсь найти способ (в дистрибутивах на основе Linux / Debian) перечислить все компьютеры в той же локальной сети, где находится мой нетбук. Я попробовал «arp -n», но я не чувствую, что это полный список, так как мой iPhone находится на том же Wi-Fi-маршрутизаторе, что и мой нетбук, и это не помогло. Есть ли какой-нибудь лучший способ получить полный список машин, которые используют один и тот же шлюз?

Получите Nmap . Это программа Trinity, используемая в The Matrix, и вы можете выполнить сканирование, чтобы найти все устройства, подключенные к локальной сети, в которой вы находитесь, и многое другое.

Это то, что я использую, nmap и адрес, используя блочную нотацию CIDR для сети, которую вы хотите сканировать. Для начала вам нужно установить nmap, так как он может не поставляться с предустановленным дистрибутивом. На Ubuntu:

Затем выясните ваш сетевой адрес, используя ifconfig:

вывод ifconfig для интерфейса, который я хочу сканировать:

Используйте inet addr и Mask для определения сетевого адреса в нотации CIDR, подробнее о CIDR здесь . Адрес:

Запустите nmap, используя параметр -sP, который будет сканировать только после проверки, подключен ли хост:

Вывод nmap будет выглядеть примерно так:

Вот и все, если вам нужна дополнительная помощь по nmap, посмотрите официальную документацию по nmap или запустите:

arp -n показывает только те машины в вашей локальной сети, с которыми ваша машина уже общалась. Вы можете получить этот список для лучшего заполнения, отправив эхо-запросы на широковещательные и многоадресные адреса всех хостов:

«Все единицы» (в двоичном формате) широковещательный адрес. Обратите внимание, что большинство IP-стеков преобразует это в широковещательные адреса подсетей для всех подсетей, к которым вы подключены:

Широковещательный адрес подсети для вашей текущей подсети. Итак, если вы находитесь на 192.168.1.0/24:

Многоадресный адрес «все хосты». Мне это очень нравится, потому что больше шансов найти хосты, настроенные для других IP-подсетей, которые подключены к той же локальной сети Ethernet, что и вы:

Обратите внимание, что этот метод и другие методы, о которых я уже упоминал в других ответах, ищут только узлы с достижимым IP-адресом в текущей сети. Это, вероятно, все, что вам нужно заботиться, но злоумышленник может отслеживать или совершать плохие действия в сети, не будучи видимым через IP.

ip neigh и hosts . НЕТ Nmap требуется / НЕТ sudo требуется .

Читайте также:  Что делать если слетела лицензионная windows

Основываясь на этом, вы можете создать скрипт на Python:

(или просто arp . я этого раньше не видел)

Я не нашел существующие ответы достаточно удовлетворительными, поэтому я решил попробовать. В конце концов, FAQ предлагает предоставить контекст для ссылок .

nmap отлично, если немного запутать в использовании. Вот кое-что, что я запускаю, чтобы обнаружить локальные сетевые устройства, которые в основном способны копировать и вставлять. nmap -sP (или nmap -sn ) сканирует с помощью пинга . Существуют и другие варианты «обнаружения хоста», например, с помощью nmap -sL или nmap -Pn .

Способ № 1.

Способ № 2. Я знаю, что это работает, но я не могу сказать, если это правильный путь.

Буду рад узнать, есть ли более эффективные способы. До тех пор я придерживаюсь этого.

Например, вы можете попробовать пропинговать всю данную подсеть с помощью небольшого сценария оболочки Linux.

Hunt — это инструмент командной строки, способный создавать список машин, передаваемых по сети для получения информации. Он использует данные TCP, UDP, ICMP и ARP для создания списка активных MAC-адресов в сети. Это пассивный инструмент, который работает, слушая по проводам.

Для более компактного списка подключенных устройств:

nmap -sL 192.168.0.* перечислит все IP-адреса в подсети и отметит те, которые имеют имя:

Поскольку все интересные записи начинаются с круглых скобок ( и цифр 1 , мы фильтруем их с помощью | grep \(1 (обратная косая черта необходима, чтобы избежать скобок)

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

Для сканирования состояния диапазона IP-адресов это удобно и просто:

  • В предыдущих выпусках Nmap -sn был известен как -sP

Я сделал это на Mac OS X (которая основана на BSD). Я не уверен, если версия для Linux имеет какие-либо различия.

Вы можете использовать fping sudo apt-get install fping (в Debian-подобных ОС).

fping похож на ping, но гораздо лучше работает при пинге нескольких хостов. -R 1 флаг указан Fping выполнить только один раунд. Часть 2> 1 позволяет grep фильтровать вывод.

Будет отображать что-то вроде:

Существует также интересный флаг для nmap , который позволит вам увидеть продавца MAC — если он известен. Используйте с sudo для просмотра MAC-адресов.

Вы получите, например:

1. Альтернативное решение, если вещание nmap не доступно:

2а. или просто спросите свой сервер доменных имен :

2b. без awk

пингует все проверяемые сетевые устройства в подсети 192.168.2.0/24 параллельно (для сокращения времени выполнения). После этого arp должно отображаться каждое устройство, которое ответило.

не проверяет наличие активных или текущих соединений, но перечисляет все соединения, которые хранит служба локального домена, даже очень старые.

Более подробное объяснение:

  • seq 254 создать все числа от 1 до 254 (для всех чисел от 100 до 150: seq 100 150 )
  • xargs вызывает ping и заменяет «IP» ( -iIP ) на seq номер uence из stdin, поэтому 192.168.2.IP меняется на 192.168.2.1 для первого seq номера, -P указывает количество одновременных ping процессов, которые xargs должны начаться, я выбираю то же количество +1, что и адреса ( = 254) Мне интересно.
  • ping с ip-адресом, измененным функцией xargs ( 192.168.2.IP ) и только ping один раз ( -c1 ); -i в этом случае вы должны использовать тот же идентификатор, который указан для аргумента xargs, вместо аргумента IP
  • grep time= чтобы удалить каждую строку, содержащую лишнюю информацию, нас интересуют только ответы, которые обеспечивают время прохождения туда-обратно (= получил ответ)
  • arp -a отображать действительные пары имен (ip)

Я называю это моей командой pingall и сделал ее доступной через псевдоним в

Источник

Оцените статью