Как посмотреть устройства в сети через cmd mac os

Обновлено: 07.07.2024

Итак, перед Вами поставлена задача, провести соответствие устройств с их MAC адресами в локальной сети, как бы вы поступили? Вопрос номер два: а для чего все это нужно, таким образом, я преследую несколько целей:

План исполнения поставленной задачи:

  1. Просканировать локальную сеть по маске, используемой на предприятии, но может быть, что машины закрыты фаерволом, поэтому нужно посылать arp request ’ы.
  2. Посредством ARP запрос проверить каждый узел сети на получение его MAC адреса, уникального идентификатора устройства.

MAC адрес – это, к примеру:

C:\Users\ekzorchik>ping -n 1 192.168.0.1

Обмен пакетами с 192.168.0.1 по с 32 байтами данных:

Ответ от 192.168.0.1: число байт=32 время=2мс TTL =128

C:\Users\ekzorchik>arp -a 192.168.0.1

адрес в Интернете Физический адрес Тип

192.168.0.1 00-15-5 d -0 a -06-00 динамический -> вот это и есть MAC адрес устройства, где первые 6 байт: 00-15-5 d это идентификатор производителя, вычисляется он по полной базе (Задача: прикрутить к скрипту опознавание кто это), а следующие 6 байт – это уникальный идентификатор сетевого адаптера установленного в системе.

Как я бы решал поставленную задачу:

Т.к. я преимущественно отожествляю себя, как Ubuntu специалист, то и средство на котором я буду разбирать пути решения – это система Ubuntu 12.04.5 серверная редакция:

Получить результат можно следующими способами:

$ sudo apt-get install arp-scan –y

Запускаю утилиту на сканирование текущей сети, в которой сетевой адаптер получил от DHCP сервера IP адрес:

$ arp-scan --interface=eth0 --localnet

You need to be root, or arp-scan must be SUID root, to open a link-layer socket.

link _ open : Operation not permitted

$ sudo arp-scan --interface=eth0 --localnet

Interface: eth0, datalink type: EN10MB (Ethernet)

192.168.0.1 00:15:5d:0a:06:00 Microsoft Corporation

192.168.0.2 00:15:5d:0a:06:01 Microsoft Corporation

192.168.0.3 00:50:56:9c:25:c3 VMware, Inc.

192.168.0.5 00:21:91:fb:c9:45 D-Link Corporation

192.168.0.6 00:22:64:0a:e0:e8 Hewlett Packard

192.168.0.7 00:15:17:fa:a6:ac Intel Corporate

192.168.0.9 00:15:5d:0a:06:0d Microsoft Corporation

192.168.0.10 00:0c:29:34:c4:b4 VMware, Inc.

192.168.0.11 00:0c:29:c2:ee:15 VMware, Inc.

192.168.0.12 d8:eb:97:d0:5d:0d (Unknown)

Здесь я прерываю список, т.к. он очень большой, что теперь я могу сделать:

Сохранить его в txt

Открыть в программе LibreOffice Calc и произвести с ним некоторое форматирование, добавив такие колонки, как: Сервис на этом IP адресе, местонахождение устройства.

На заметку: Также можно использовать данную утилиту не для всего пула устройства в сети, а для конкретных IP адресов:

$ sudo arp-scan --interface=eth0 192.168.0.1 192.168.0.20 192.168.0.10

Interface: eth0, datalink type: EN10MB (Ethernet)

192.168.0.20 00:15:17:73:be:84 Intel Corporate

192.168.0.1 00:15:5d:0a:06:00 Microsoft Corporation

192.168.0.10 00:0c:29:34:c4:b4 VMware, Inc.

6 packets received by filter, 0 packets dropped by kernel

Ending arp-scan 1.8.1: 3 hosts scanned in 0.106 seconds (28.30 hosts/sec). 3 responded

Просканировать локальную сеть, ограничив результаты маской подсети:

$ sudo arp-scan --interface=eth0 192.168.0.0/24

$ sudo arp-scan --interface=eth0 192.168.0.0:255.255.255.0

Просканировать локальную сеть, огранив результаты, указанным диапозоном IP адресов:

$ sudo arp-scan --interface=eth0 192.168.0.1-192.168.0.10

Interface: eth0, datalink type: EN10MB (Ethernet)

192.168.0.1 00:15:5d:0a:06:00 Microsoft Corporation

192.168.0.2 00:15:5d:0a:06:01 Microsoft Corporation

192.168.0.3 00:50:56:9c:25:c3 VMware, Inc.

192.168.0.6 00:22:64:0a:e0:e8 Hewlett Packard

192.168.0.5 00:21:91:fb:c9:45 D-Link Corporation

192.168.0.7 00:15:17:fa:a6:ac Intel Corporate

192.168.0.9 00:15:5d:0a:06:0d Microsoft Corporation

192.168.0.10 00:0c:29:34:c4:b4 VMware, Inc.

11 packets received by filter, 0 packets dropped by kernel

Ending arp-scan 1.8.1: 10 hosts scanned in 0.363 seconds (27.55 hosts/sec). 8 responded

$ sudo arp-fingerprint -o "--interface=eth0 --numeric" 192.168.0.1

192.168.0.1 11110100000 FreeBSD 5.3, 7.0, DragonflyBSD 2.0, Win98, WinME, NT4, 2000, XP, 2003, Catalyst IOS 12.0, 12.1, 12.2, FortiOS 3.00

$ sudo arp-fingerprint -o "--interface=eth0 --numeric" 192.168.0.10

192.168.0.10 01010100000 Linux 2.2, 2.4, 2.6, Vista, 2008, Windows7

Из обоих примеров, я вынес для себя, что получаемые результаты слишком расплывчаты и не могут со 100% точностью характеризовать систему.

$ sudo arp-scan --interface=eth0 --arpspa=dest 192.168.0.10

$ sudo apt-get install nmap –y

На заметку: обозначение опций используемых для получения результата: IP = MAC

$ sudo nmap -sP -PR 192.168.0.* | head -n 20

Nmap scan report for server.dsplit.local (192.168.0.1)

Host is up (0.0030s latency).

MAC Address: 00:15:5D:0A:06:00 (Microsoft)

Nmap scan report for ekt-ts10.dsplit.local (192.168.0.2)

Host is up (0.0027s latency).

MAC Address: 00:15:5D:0A:06:01 (Microsoft)

Nmap scan report for tserver.dsplit.local (192.168.0.3)

Host is up (0.0027s latency).

MAC Address: 00:50:56:9C:25:C3 (VMware)

Nmap scan report for vmw1.dsplit.local (192.168.0.5)

Host is up (0.0082s latency).

MAC Address: 00:21:91:FB:C9:45 (D-Link)

Nmap scan report for 192.168.0.6

$ sudo nmap -sP 192.168.0.1/24 | grep 'MAC' | awk ''

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

В) Третьим способом это использование расширенной версии стандартной утилиты ping , а именно утилита fping которая проверяет доступность систем в сети путем отправки ICMP ECHO _ REQUEST пакетов, но с указанием нескольких узлов или тектового файла со списком узлов

$ sudo apt-get install fping –y

Определить список хостов, которые находятся online в сети:

$ fping -g 192.168.0.1/24 2>&1 | grep alive

192.168.0.1 is alive

192.168.0.2 is alive

192.168.0.3 is alive

192.168.0.5 is alive

192.168.0.6 is alive

Определить все живые хосты в сети и произвести их опрос на предмет, какой сетевой адаптер установлен на этой системе:

$ fping -r0 -g 192.168.0.1/24 2>&1 | grep alive | arp –a

$ fping -r0 -g 192.168.0.1/24 2>&1 | grep alive | arp -a | grep -v "incomplete"

npi04e51e (192.168.0.199) at bc:5f:f4:af:c6:c5 [ether] on eth0

? (192.168.0.130) at 00:09:45:58:04:be [ether] on eth0

constr-i7 (192.168.0.65) at 14:14:4b:1e:25:f9 [ether] on eth0

? (192.168.0.158) at 00:09:45:58:03:9e [ether] on eth0

ws13 (192.168.0.93) at 8c:89:a5:29:38:67 [ether] on eth0

meb-015 (192.168.0.154) at e0:cb:4e:82:95:0e [ether] on eth0

? (192.168.0.24) at d8:eb:97:d2:ae:c2 [ether] on eth0

? (192.168.0.89) at 00:09:45:59:27:ae [ether] on eth0

? (192.168.0.150) at 00:0b:82:25:75:9f [ether] on eth0

android-2c8fcfe7f74b52e1 (192.168.0.85) at a0:b3:cc:ca:07:71 [ether] on eth0

holml (192.168.0.146) at 00:0c:29:21:16:82 [ether] on eth0

, где значение наиболее нужных в пояснение ключей:

Также можно и так:

Определяем широковещательный адрес в сети:

$ ifconfig | grep "Bcast"

inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0

Делаем запрос к широковещательному адресу в сети:

$ pinb -b -c1 192.168.0.255

А теперь производим запрос к локальному кэшу для извлечения информации по IP адресам и их MAC адресам:

? (192.168.0.89) at 00:09:45:59:27:ae [ether] on eth0

? (192.168.0.187) at 00:09:45:59:cb:96 [ether] on eth0

? (192.168.0.170) at 00:09:45:58:03:86 [ether] on eth0

? (192.168.0.62) at 34:08:04:16:31:36 [ether] on eth0

? (192.168.0.157) at 00:09:45:58:03:9c [ether] on eth0

client4 (192.168.0.66) at 00:09:45:5a:a3:4c [ether] on eth0

? (192.168.0.57) at 00:09:45:5a:f4:5e [ether] on eth0

tserver.dsplit.local (192.168.0.3) at 00:50:56:9c:25:c3 [ether] on eth0

c377a6442 (192.168.0.40) at 14:14:4b:b1:76:90 [ether] on eth0

pc (192.168.0.134) at 00:09:45:59:f8:16 [ether] on eth0

? (192.168.0.192) at f8:d1:11:88:21:1c [ether] on eth0

ws17 (192.168.0.175) at 00:09:45:58:04:c6 [ether] on eth0

npi05c1a0 (192.168.0.51) at 2c:44:fd:05:c1:a0 [ether] on eth0

? (192.168.0.158) at 00:09:45:58:03:9e [ether] on eth0

rpcws (192.168.0.182) at 00:09:45:5a:a2:64 [ether] on eth0

? (192.168.0.58) at 00:09:45:58:03:96 [ether] on eth0

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

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

На этом считаю, данную заметку завершенной, я добился решения поставленной задачи по первому пункту, второй же предусматривает тонкую настройку оборудования, посредством которого будет ограничиваться доступ, а это уже тема отдельной заметки. В последствии я, конечно же покажу, как я это делал. А пока все, с уважением – автор блога ekzorchik.

Если вам необходимо просмотреть IP-адреса другого оборудования в той же локальной сети (локальной сети), что и Mac, инструмент командной строки командной строки работает достаточно хорошо. Вы быстро найдете другие устройства IP и сопутствующие MAC-адреса, что упростит прямые сетевые подключения и будет полезно для многих других сетей и устранения неполадок.

Найти IP-адреса локального устройства с помощью arp

Для начала запустите приложение «Терминал» из / Приложения / Утилиты / (или получив доступ с помощью Spotlight и Command + Spacebar). Инструмент arp использует ARP (протокол разрешения адресов) для отображения и управления функциями разрешения сетевых адресов. Для целей, которые мы хотим достичь здесь, самое простое использование arp с прикрепленным флагом:

Это вернет устройства, найденные в локальной сети, включая другие компьютеры Mac, ПК, маршрутизаторы, iPhones и iPads, отображающие как их IP-адрес LAN, так и их индивидуальный MAC-адрес. (Для последнего вы можете помочь отличить аппаратное обеспечение, сопоставляя их с MAC-адресом, найденным в MacOS X или iOS).

Пример вывода arp -a выглядит следующим образом:
% arp -a
? (192.168.0.1) при 0: 0: ca: 1: 2: 3 на en0 ifscope [ethernet]
? (192.168.0.2) в 68: b8: 3d: 22: 1c: 42 на en0 ifscope [ethernet]
? (192.168.0.11) при b4: 12: 23: 5a: d3: 6f на en0 ifscope [ethernet]
? (192.168.0.255) в ff: ff: ff: ff: ff: ff на en0 ifscope [ethernet]

Первый пинг широковещательного IP:

Затем запустите команду arp -a еще раз:

Терминал% arp -a
? (192.168.0.1) при 0: 0: ca: 1: 2: 3 на en0 ifscope [ethernet]
? (192.168.0.2) в 68: b8: 3d: 22: 1c: 42 на en0 ifscope [ethernet]
? (192.168.0.10) в 22: 12: bb: a0: 3d: fd на en0 ifscope [ethernet]
? (192.168.0.11) при b4: 12: 23: 5a: d3: 6f на en0 ifscope [ethernet]
? (192.168.0.255) в ff: ff: ff: ff: ff: ff на en0 ifscope [ethernet]

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

Вы можете игнорировать предложение протокола в конце результатов arp, в этом примере, несмотря на устройства, показывающие как «сеть», они фактически все в беспроводной сети с wi-fi интерфейсом en0.

Обратите внимание, что вы не увидите собственный IP-адрес или MAC-адрес Mac в этом списке. В случае необходимости вы можете найти свой собственный IP-адрес через Terminal, System Preferences или используя внешнюю службу, если вы ищете внешний адрес.

Как найти IP-адреса всех других компьютеров в моей сети?

Вышеупомянутый пинг и трюк arp найдут и перечислит все IP-адреса любых устройств или компьютеров в сети. Это означает, что IP-адрес любого из подключенных к сети компьютеров Mac, ПК с ОС Windows, компьютеров Linux, устройств iOS, таких как iPhone и iPad, телефонов и планшетах Android в одной сети, даже установленные с поддержкой IP-адреса, такие как Apple TV или Playstation, будут что эти устройства и компьютеры подключены к той же локальной сети, что и компьютер, выполняющий поиск.

Знаете ли вы еще один полезный способ найти, найти и перечислить сетевые устройства и компьютеры в одной сети? Поделитесь им с нами в комментариях!

Ниже приведены некоторые часто используемые команды диагностики сети в Mac OSX. Они могут помочь нам найти проблемы с сетью. Упомянутые в статье принципы протокола и сетевой коммуникации можно отнести кСоглашение леса。
Некоторые инструменты, такие как arping, arp-scan, необходимо установить вместе с HomeBrew.

Основные инструменты

Первый шаг в сетевой диагностике - понять ваше собственное оборудование, например, какие интерфейсы и IP-адреса.

ifconfig

Отображение информации о сетевом интерфейсе (интерфейсе). Например, имя интерфейса, тип интерфейса, IP-адрес интерфейса, MAC-адрес оборудования и т. Д.

Протокол ARP используется внутри локальной сети (LAN). Заимствуя протокол ARP, устройство может узнать соответствие IP-MAC в той же локальной сети. Когда мы посещаем локальный IP-адрес, устройство связывается с соответствующим MAC-адресом в соответствии с соответствующими отношениями. С помощью инструмента ARP мы можем узнать, нормальная ли связь в локальной сети.

Отображение соответствий IP-MAC, хранящихся локально

Отправьте ARP-запрос через интерфейс eth0, чтобы запросить MAC-адрес устройства с IP-адресом 192.168.1.1.

Запросить соответствующий MAC-адрес всех IP-адресов во всей локальной сети

Мониторинг обмена данными по протоколу arp интерфейса en0

Сетевой уровень

Сетевой уровень - это глобальный Интернет, и устройства в Интернете идентифицируются по IP-адресам. Ping - это отправка запроса ECHO_REQUEST протокола ICMP на IP-адрес. Устройство, получившее запрос, вернет ответ ICMP. Если выполняется проверка связи с определенным IP-адресом, то устройство с этим IP-адресом может быть легко доступно через сетевой уровень.

Отправьте ICMP-запрос на IP-адрес 192.168.1.255. Если ICMP адреса не отключен, устройство в сети ответит.

Отправьте ICMP-запрос на широковещательный адрес 192.168.1.255. Если ICMP не отключен, устройства в сети ответят.
Обратите внимание, что:Многие устройства отключают ICMP. Если вы не можете проверить связь с устройством, это не обязательно ошибка сетевого уровня.
Если два устройства имеют одинаковый IP-адрес, это вызовет конфликт IP-адресов. Во многих сетях IP-адреса автоматически назначаются протоколом DHCP, что может значительно снизить вероятность конфликтов IP-адресов. Сервер DHCP и устройство соглашаются, что устройство будет занимать определенный IP-адрес в течение определенного периода времени, и сервер DHCP больше не будет назначать этот IP-адрес другим.

Продлите аренду DHCP. Устройство освободит IP-адрес и повторно получит IP-адрес от DHCP-сервера.

Установите интерфейс en0 как статический IP-адрес.

маршрутизация

Локальная сеть получает доступ к глобальной сети Интернет через маршрутизатор. Связь в Интернете часто должна проходить через несколько маршрутизаторов. Выход из строя роутера в пути может вызвать ненормальный доступ в Интернет.

Отобразите таблицу маршрутизации. Из таблицы маршрутизации вы можете найти шлюз (Gateway). Шлюз - это выход в более широкую сеть.

Проследите весь маршрут до IP-адреса назначения.

Проследите маршрут по протоколу ICMP. Протокол ICMP часто отключается, поэтому возвращается строка «*».

По протоколу TCP, через 80 порт, трассировка маршрута. Порт 80 протокола TCP по умолчанию отключается редко.

Сетевой мониторинг

tcpdump - это инструмент для захвата сетевых пакетов. Он может отслеживать обмен данными на разных уровнях сетевого интерфейса и отфильтровывать определенный контент, например, определенные протоколы, определенные порты и т. Д. Мы использовали tcpdump для отслеживания связи по протоколу ARP, описанному выше. Здесь мы рассмотрим другие методы мониторинга.

DNS должен переводить между доменным именем и IP. Ошибка DNS помешает нам получить доступ к определенному URL-адресу через доменное имя.


Мануал

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

Он работает немного иначе, чем утилиты Linux, с некоторыми флагами в различных случаях, так что не думайте, что навыки Linux будут точными в macOS.

Сканирование открытых портов вашей локальной сети с помощью nmap

Установите nmap с помощью Homebrew

Если у вас установлен Homebrew, запустите

это позволит скачать и установить nmap и все необходимые зависимости.

Сканирование с помощью Nmap

Nmap создан для сканирования предоставленного имени хоста или сетевого адреса и возврата списка открытых портов.

Название расшифровывается как «network mappe», но больше похоже на маппер портов.


Для поиска открытых портов на диапазоне IP-адресов используйте косую черту.

Чтобы найти IP-адреса вашего маршрутизатора и различных устройств в вашей сети, вы можете запустить arp или ipconfig.


Использование флага -A заставит nmap сканировать более агрессивно, возвращая значительно больше информации, но прозрачно раскрывая ваше присутствие в журналах сервера.


Это сканирует определенный IP-адрес для операционной системы (-O). Опять же, это должно быть запущено с sudo.

Если вы хотите запустить nmap немного хитрее, используйте флаг -sS:

Это придаст эффект принудительного «полуоткрытого» сканирования.

Система отправляет пакет TCP SYN, чтобы проверить, открыт ли порт, но не отвечает пакетом ACK при получении утвердительного ответа.

Таким образом, удаленный сервер, вероятно, не будет регистрировать сканирование.

Флаг -sS и другие параметры режима сканирования должны запускаться с помощью sudo.

Например, переключатель режима -sP будет сканировать IP-адреса, но не порты, действуя примерно так, как описано ниже.

Чтобы получить более подробные результаты, добавьте тег -vv или -v3.

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

В зависимости от того, что вы ищете, эти флаги могут помочь вам найти его.

Например, если вы хотите проверить только порт 22, вы можете выполнить следующую команду:

Вывод не вернет никаких строк, если порт недоступен, и вернет строку состояния порта, если он доступен.

Сканирование активных IP-адресов вашей локальной сети с помощью arp

ARP сканирует вашу локальную сеть на наличие подключенных устройств.

Поскольку arp предназначен для создания и изменения протоколов разрешения адресов, он имеет ограниченные инструменты, доступные для сканирования вашей сети.

Но он поставляется на каждом Mac, и это быстрый способ получить конкретную информацию.

Чтобы увидеть список всех отвечающих устройств, подключенных в данный момент к вашей сети, откройте терминал и запустите:

Вывод возвращает список всех устройств, подключенных к вашей сети, по IP-адресу и MAC-адресу.


Вы можете запустить arp -a -i en0, чтобы получать отчеты только от вашего сетевого интерфейса en0.

Заключение

Самым мощным инструментом для сканирования вашей локальной сети в macOS является nmap.

arp также полезен для запуска пинга в сети.

Читайте также: