как узнать ip устройств в локальной сети linux
Как узнать IP-адрес Linux
Каждый компьютер в сети интернет нужно определённым образом идентифицировать. Для этого используются IP-адреса. Каждый компьютер, подключённый к интернету, имеет свой адрес, с помощью которого можно очень просто обратиться к этому компьютеру.
Если вы хотите каким-либо образом взаимодействовать с другим компьютером по Сети, вам нужно узнать его IP-адрес Linux. Очень часто приходится работать по IP-адресу с серверами, но это может быть полезно и для домашних компьютеров, и для локальных сетей. В этой небольшой статье мы рассмотрим, как узнать IP Linux разными способами. Поговорим о том, как узнать внешний IP, выданный провайдером, и внутренний IP в вашей локальной сети. Но сначала давайте попытаемся понять, что такое IP-адрес, и как всё работает.
Немного теории
Мы можем выделить три типа IP-адресов, с которыми вам придётся сталкиваться:
Но с локальной сетью всё немного сложнее. В идеале, каждый компьютер в мире должен был бы иметь уникальный IP-адрес для полноценного доступа в интернет. Но с ростом популярности этой технологии свободные адреса скоро начали заканчиваться, и теперь уникальные IP имеют только серверы, а обычные пользователи размещаются провайдерами по несколько сотен на одном IP с помощью NAT.
Технология NAT позволяет компьютеру подключиться к любому серверу в интернете и получить от него ответ, но инициировать подключение к такому компьютеру невозможно, поскольку фактически один IP принадлежит сотне компьютеров, и система просто не знает, к какому из них обращаются.
Как вы поняли, ваш домашний компьютер мог бы иметь внешний IP-адрес доступный всем, но это нецелесообразно как минимум по двум причинам. Во-первых, дорого, во-вторых, очень небезопасно. Поэтому подключение компьютера к интернету сейчас выглядит приблизительно так:
Теперь, когда вы немного начали ориентироваться в вопросе, давайте рассмотрим способы узнать свой IP Linux.
Как узнать внутренний IP Linux
Вы можете убедится в этом, выполнив nslookup:
Как узнать локальный IP в Linux
Узнать локальный IP компьютера тоже не очень сложно. Для этого вам не нужны никакие сервисы, мы можем просто посмотреть информацию об интерфейсах.
Чтобы узнать свой IP Linux в локальной сети? выполните такую команду:
Здесь отображается довольно много информации о сетевых интерфейсах. Кроме IP, здесь можно увидеть MAC-адрес, маску сети и небольшую статистику по работе интерфейса. IP-адрес каждого интерфейса отображается после слов inet addr.
Вы можете отфильтровать лишнюю информацию и вывести только IP-адреса:
sudo ifconfig | grep «inet addr»
Здесь IP-адрес отображается после слова inet. Вы знаете, как посмотреть IP-адрес Linux для компьютера в локальной сети, теперь рассмотрим внешний.
Как узнать внешний IP-адрес в Linux
С внешним IP-адресом ситуация немного сложнее. Конечно, если бы у вас был доступ к серверу провайдера, вы бы могли выполнить ту же самую команду ifconfig и узнать внешний IP Linux точно так же, как и на своём компьютере.
Понятное дело, что доступа к серверам провайдера у вас нет, поэтому придётся пользоваться обходными путями. Мы можем открыть специальный сайт, который посмотрит, с какого IP мы его открыли, и скажет его нам. Есть несколько таких сайтов. Проще всего сделать это с помощью браузера, например, откройте сайт ifconfig.me или eth0.me:
Но это не совсем удобно. Лучше сделать это с помощью терминала. Просто используйте команду wget. Сразу рассмотрим несколько таких сайтов, чтобы вы могли использовать любой понравившийся из них:
Чтобы не набирать длинную команду каждый раз, вы можете создать удобный алиас:
Хочу заметить, что если вы хотите узнать не внешний IP компьютера, а именно адрес роутера в сети провайдера, то такой способ не поможет. Вам нужно посмотреть в настройках роутера или попытаться сделать это через командный интерфейс роутера, так как это описано в предыдущем варианте.
Выводы
Вот и всё, теперь вы точно знаете, как узнать IP-адрес Linux, оказывается, это не так сложно, как могло показаться сразу. Правда, во всех этих терминах можно сначала запутаться, но с практикой это проходит. Если у вас остались вопросы, спрашивайте в комментариях!
В статье мы рассмотрели, что такое IP-адрес, но маршрутизацию затронули только вскользь. Если вы хотите узнать об этом подробнее, то можете посмотреть вот это видео:
Как узнать IP адрес, используя командную строку Linux
Рассмотрим, как узнать текущий IP-адрес системы Linux, используя командную строку.
ifconfig уже устарел
Раньше для просмотра текущих сетевых интерфейсов и их параметров (включая IP-адреса), использовалась команда ifconfig. Но она уже несколько лет как устарела, и в современных дистрибутивах Linux не поддерживается.
Вместо ifconfig рекомендуется использовать команду ip
Определяем IP-адрес командой ip
Чтобы определить IP-адрес вашего сетевого интерфейса можно использовать команду ip address (или эквивалентный вызов ip addr или просто ip a ).
В результате выполнения команды на экран будет выведен список текущих сетевых интерфейсов и их параметры. Первый интерфейс в списке обычно lo — это loopback интерфейс (нас он сейчас не интересует). Нас интересует Ethernet-интерфейс или WiFi-интерфейс (в зависимости от того, какое у вас подключение).
Ethernet интерфейсы обычно имеют имена вида enp2s0 или eth0, а WiFi-интерфейсы имеют имена вида wlp2s0 или wlan0 (цифры в названии могут отличаться).
Определяем IP-адрес командой hostname
Команда выводит все сетевые адреса хоста (системы), кроме loopback интерфейса. Если у вас всего одно сетевое соединение, то, скорее всего, будет выведен один IP-адрес.
Через графическую утилиту
Параметры→Сеть
Настройки сетевого интерфейса.
Как получить список всех IP-адресов (и в идеале имена устройств) в локальной сети?
Наша сеть выдала ошибку, что произошел конфликт IP-адресов, и я хотел бы выяснить, каковы все IP-адреса устройства. (Я также нуждался в этом раньше). (обновление / уточнение: я тоже ищу на базе Windows.)
Я прочитал предложения по различным инструментам (Look @ Lan, Angry IP Scanner) и ищу предложения от людей, которые использовали эти или другие инструменты.
Если в сети есть поле unix, вы можете попробовать arp-scan:
Быстро и грязно (в Linux):
Как уже упоминалось, nmap ( http://nmap.org/ ), вероятно, хороший, быстрый и бесплатный вариант. Только будьте осторожны с этим, есть несколько очень агрессивных вариантов, которые могут привести к поломке машины.
Эта команда выполнит простую проверку связи выбранной подсети и должна быть полностью безопасной.
Очевидно, замените своей собственной сетевой информацией.
Вы упомянули, что был идентифицирован дубликат IP-адреса. На обеих машинах должен появиться экран с предупреждением, который позволит вам идентифицировать машины. Если используется DHCP, то должен быть сгенерирован другой запрос, и проблема может быть решена самостоятельно.
Список IP-адресов в локальной сети будет иметь ограниченную помощь, поскольку проблема заключается в том, что две машины пытаются использовать один и тот же IP-адрес.
Я бы посоветовал вам попытаться найти MAC-адреса двух машин, которые конфликтуют.
На каком устройстве зарегистрирован конфликт IP-адресов? Был ли это сервер, роутер и т. Д.? Некоторые платформы (Solaris и BSD) регистрируют MAC-адрес хоста-нарушителя вместе с сообщением об ошибке. Если рассматриваемый IP-адрес находится в одном из ваших пулов DHCP, также стоит проверить в журналах вашего DHCP-сервера MAC-адрес, которому он пытается назначить этот IP-адрес.
В противном случае я бы порекомендовал войти на маршрутизатор по умолчанию в подсети, в которой возникает эта проблема, и отслеживать таблицу ARP. Должен быть один IP-адрес, который переключается между несколькими MAC-адресами; опять же, эти два MAC-адреса представляют интересующие вас устройства.
Когда у вас есть MAC-адреса двух устройств, вы сможете связать их с определенными портами коммутатора. Этот вопрос предоставляет больше информации о том, как это сделать. Вы также можете использовать инструмент поиска OUI, чтобы определить производителя каждого устройства.
Как узнать ip устройств в локальной сети linux
Переходим на Ubuntu
Как найти все устройства, подключенные к локальной сети
Беспроводные сети всегда были желанной целью для начинающих «хакеров». Кроме того, беспроводные сети обычно более уязвимы к атакам, чем обычные проводные.
Я не предлагаю никого взламывать, а прошу задуматься, не подключился ли к вашей сети такой «новичок»? И дело даже не в том, что сосед может пользоваться оплаченным вами доступом в интернет, а в том, что вы можете понести ответственность за его действия.
Для того, чтобы избежать такой ситуации, нужно знать, как найти все устройства, подключенные к вашей беспроводной сети. Кроме того, это будет полезно не только с точки зрения безопасности. Например, знание ip-адреса других машин в сети позволит передать файлы на эту машину, даже не вставая со стула.
Ближе к делу, ниже приводится краткая инструкция, как найти все устройства, подключенные к сети.
Поиск устройств в сети с помощью командной строки Linux
Установите nmap
nmap — одна из самых популярных утилит для сканирования сети в Linux. Для того, чтобы установить nmap в Ubuntu (или других дистрибутивах Linux на базе Debian), выполните следующую команду:
Эта утилита должна быть доступна в официальных репозиториях всех остальных дистрибутивов.
Узнайте диапазон адресов сети
Нужная нам информация находится во второй строке. Как видно, мой локальный IP-адрес 192.168.1.69, а маска подсети 255.255.255.0, что означает, что в локальной сети адреса будут отличаться от 192.168.1.0 до 192.168.1.255.
Просканируйте устройства, подключенные к сети
Для получения более точной информации лучше выполнять сканирование от имени администартора. Используйте команду nmap следующим образом:
Как видно, в сети работает 5 устройств, одно — роутер, два компьютера и два телефона. Регулярно проверяйте вашу беспроводную сеть, это может обезопасить вас от многих проблем!
Отобразить список компьютеров в локальной сети в Linux
10 ответов
Это то, что я использую, nmap и адрес, используя блок-схему CIDR для сети, которую вы хотите отсканировать. Сначала вам нужно установить nmap, поскольку он не может быть предварительно установлен с вами дистрибутивом. На Ubuntu:
Затем введите свой сетевой адрес, используя ifconfig:
вывод ifconfig для интерфейса, который я хочу проверить:
nmap будет выглядеть примерно так:
Вот и все, если вам нужна дополнительная помощь с nmap, см. официальную документацию nmap или выполните:
«Все те» (в двоичном) широковещательном адресе. Обратите внимание, что большинство стеков IP переведет это на широковещательные адреса подсети для всех подключенных подсетей:
Широковещательный адрес подсети для текущей подсети. Предположим, вы используете 192.168.1.0/24:
Многоадресный адрес «все хосты». Мне это очень нравится, потому что более вероятно, что хосты будут настроены для других IP-подсетей, которые подключаются к той же локальной сети Ethernet, что и вы:
Обратите внимание, что этот метод и другие методы, о которых я уже упоминал в других ответах до сих пор, ищут только хосты с IP-доступом в текущей сети. Это, вероятно, все, о чем вам нужно заботиться, но злоумышленник может заглянуть или сделать что-то плохое в сети, не будучи видимым через IP.
Основываясь на этом, вы можете создать скрипт Python:
Способ № 1.
Путь № 2. Я знаю, что это работает, но я не могу сказать, правильно ли это сделать.
Я был бы рад узнать, есть ли более эффективные способы. До тех пор я придерживаюсь этого.
Вы можете попробовать выполнить ping всю данную подсеть с помощью небольшого сценария оболочки linux, например
Чтобы проверить статус диапазона IP-адресов, это приятно и просто:
Я сделал это в Mac OS X (основанный на BSD). Я не уверен, есть ли у версии Linux какие-либо отличия.
Для более компактного списка подключенных устройств:
Куирк
Помните, что если два устройства имеют одинаковое имя, nmap покажет только тот, который был подключен к маршрутизатору последнему
1. Альтернативное решение, если широковещательные сообщения и nmap недоступны:
2a. или просто спросите сервер доменных имен :
2b. без awk
подключает все pingable сетевые устройства в подсети 192.168.2.0/24 параллельно (чтобы сократить время выполнения). Впоследствии arp должно отображаться каждое устройство, на которое он ответил.
не проверяет наличие активных или текущих подключений, но перечисляет все подключения, в которых служба локального домена сохраняет запись, даже очень старые.
Я вызываю эту команду pingall и делает ее доступной по псевдониму в