Как посмотреть все ip адреса в локальной сети линукс
Перейти к содержимому

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

  • автор:

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

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

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

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

anonymous
16.11.06 18:08:21 MSK

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

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

spirit ★★★★★
( 16.11.06 18:28:46 MSK )
Ответ на: Re: Как получить список ip-адресов в локальной сети? от spirit 16.11.06 18:28:46 MSK

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

anonymous
( 16.11.06 18:44:45 MSK )
Ответ на: Re: Как получить список ip-адресов в локальной сети? от anonymous 16.11.06 18:44:45 MSK

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

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

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

$ nmblookup ‘*’|grep «»|wc

anonymous
( 16.11.06 18:48:26 MSK )

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

myhand
( 16.11.06 19:56:41 MSK )

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

nmap -PR ‘192.168.0.*’

birdie ★★★★★
( 17.11.06 10:33:39 MSK )

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

#!/bin/sh NET=192.168.0 FIRST=1 LAST=254 for $HOST in `seq $FIRST $LAST` do ping -w3 -c2 $NET.$HOST >/dev/null && echo "$NET.$HOST" done

sdio ★★★★★
( 17.11.06 14:49:13 MSK )
Ответ на: Re: Как получить список ip-адресов в локальной сети? от sdio 17.11.06 14:49:13 MSK

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

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

isden ★★★★★
( 17.11.06 22:06:30 MSK )

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

anonymous
( 20.11.06 10:34:51 MSK )

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

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

def ping(ip):
alive=False
PORT = 139
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(4)
try:
exit=s.connect_ex((ip, PORT))
alive=(exit!=113) # 113 — No route to host
finally:
s.close()
return alive

def add_ip_to_list(ip,ips):
if (ping(ip)):
ips.append(ip)

def get_ips():
# Запускаем параллельно опрос всех хостов подсети и ждем 1 секунду
# Этого достаточно для соединения с живыми хостами
ips=[]
for i in range(1,255):
ip=’192.168.0.’+str(i)
thread.start_new_thread(add_ip_to_list, (ip,ips))
time.sleep(1)
return ips

Как узнать какие 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-адресов, нужно выполнить такое сканирование несколько раз в течении рабочего дня.

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

Полный чайник в Linux. Как посмотреть из терминала все компьютеры, которые подключены к локальной сети ? Поясню подробней. Интернет-кабель у меня подключен к роутеру. От роутера идет несколько кабелей к компьютерам с Ubuntu. А теперь сам вопрос. Как мне с одного из этих компьютеров увидеть остальные компьютеры внутри сети роутера ?

Отслеживать
задан 5 июл 2016 в 11:46
7,688 17 17 золотых знаков 70 70 серебряных знаков 131 131 бронзовый знак

А с какой целью интересуетесь ? Т.е. что вы понимаете под «компьютером подключенным к локальной сети». Вам их ip/mac адресов достаточно или вы ждете чего то большего

5 июл 2016 в 11:50
связанный вопрос How to find all the used IP addresses on a network
4 авг 2017 в 6:12

5 ответов 5

Сортировка: Сброс на вариант по умолчанию

Не совсем понятно что имеется в виду, но предложу варианты (маску подставить по необходимости):

  1. nmap -sn 192.168.0.0/24 (при блокировке ICMP файрволом можно попробовать другие варианты, например, UDP: nmap -sn -PU 192.168.0.0/24 )
  2. echo 192.168.0.|xargs -n1 -P0 ping -c1|grep «bytes from» (это те, кто на пинг отвечает)

Отслеживать
ответ дан 5 июл 2016 в 11:58
9,066 13 13 серебряных знаков 26 26 бронзовых знаков
Уточнил свой вопрос.
5 июл 2016 в 12:16

Для начала убедитесь, что установлена samba. Если такой пакет присутствует и задана рабочая группа, выполните в консоли

nmblookup '*' smbtree -N 

Отслеживать
ответ дан 5 июл 2016 в 11:50
3,625 1 1 золотой знак 17 17 серебряных знаков 35 35 бронзовых знаков
а как убедиться, что samba стоит на разыскиваемых компьютерах?
5 июл 2016 в 12:41

samba должна стоять на компьютере, с которого идет поиск. На разыскиваемых можно посмотреть, отктрыт ли порт 139 tcp.

5 июл 2016 в 12:53
но для того, чтобы «посмотреть», надо знать ip-адрес. получается рекурсия.
5 июл 2016 в 12:54

Сканируйте сеть, проверяйте открыт ли порт. Я привел в ответе вариант для обычной одноранговой сети. Должно работать как в windows (компьютеры сети)

5 июл 2016 в 12:56

Есть очень удобная утилитка fping http://fping.org/ Прямо-таки для этого создана. Можно nmap , но это будет гораздо медленнее.

Отслеживать
ответ дан 5 июл 2016 в 12:10
7,461 13 13 серебряных знаков 31 31 бронзовый знак

Добавлю ещё варианты.

$ avahi-browse -r -a 

Как и nmblookup он требует, чтобы на компьютерах была установлена соответствующая служба, для linux это avahi-daemon . (С нашими тупыми провайдерами рекомендую всегда отключать проверку на использование домена .local: в /etc/default/avahi-daemon поставить AVAHI_DAEMON_DETECT_LOCAL=0 )

$ ping -b 255.255.255.255 

Чтобы компьютер с linux отвечал на это, нужно сделать на нём:

# sysctl net.ipv4.icmp_echo_ignore_broadcasts=0 

Некоторые маршрутизаторы это так же поддерживают.

Ну и более низкоуровневый и как мне кажется более надёжный для односегментной сети:

$ echo 192.168.2. | xargs -n1 -P0 arping -c 4 -f -I eth0 | grep "reply from" 

Как узнать IP адрес, используя командную строку Linux

Определить IP адрес в Linux

Раньше для просмотра текущих сетевых интерфейсов и их параметров (включая IP-адреса), использовалась команда ifconfig. Но она уже несколько лет как устарела, и в современных дистрибутивах Linux не поддерживается.

Вместо ifconfig рекомендуется использовать команду ip

Определяем IP-адрес командой ip

Чтобы определить IP-адрес вашего сетевого интерфейса можно использовать команду ip address (или эквивалентный вызов ip addr или просто ip a ).

ip address 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp2s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:24:1d:83:da:25 brd ff:ff:ff:ff:ff:ff inet 192.168.2.2/24 brd 192.168.2.255 scope global dynamic noprefixroute enp2s0 valid_lft 76434sec preferred_lft 76434sec inet6 fe80::1f6e:e0e4:27d1:e643/64 scope link noprefixroute valid_lft forever preferred_lft forever 

Команда ip address Linux

В результате выполнения команды на экран будет выведен список текущих сетевых интерфейсов и их параметры. Первый интерфейс в списке обычно lo — это loopback интерфейс (нас он сейчас не интересует). Нас интересует Ethernet-интерфейс или WiFi-интерфейс (в зависимости от того, какое у вас подключение).

Ethernet интерфейсы обычно имеют имена вида enp2s0 или eth0, а WiFi-интерфейсы имеют имена вида wlp2s0 или wlan0 (цифры в названии могут отличаться).

Найдите интересующий вас интерфейс в списке. Его IP-адрес выводится на строке inet ..

В нашем примере это inet 192.168.2.2/24 . 192.168.2.2 — это IP-адрес. 24 — это маска подсети, соответствующая маске 255.255.255.0.

Определяем IP-адрес командой hostname

Воспользуемся командой hostname , чтобы вывести IP-адрес. Используем ключ -I

hostname -I

Команда выводит все сетевые адреса хоста (системы), кроме loopback интерфейса. Если у вас всего одно сетевое соединение, то, скорее всего, будет выведен один IP-адрес.

Через графическую утилиту

Хотя эта заметка рассматривает способы определения IP-адреса через командную строку, иногда проще посмотреть текущий IP-адрес через графические программы. В Ubuntu Linux это можно сделать в Параметрах системы в разделе Сеть .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *