Как мне найти имя устройств, подключенных к точке доступа, из командной строки?

Потому что !! - это команда для чтения истории bash, а история bash используется только в интерактивном режиме.

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

Из руководства bash, раздел «РАСШИРЕНИЕ ИСТОРИИ»

Неинтерактивные оболочки по умолчанию не выполняют раскрытие истории.

2
19.08.2017, 00:14
1 ответ

Краткое напоминание об задействованных уровнях :LAN и WLAN взаимодействуют с использованием MAC-адресов (Уровень 2 OSI ). Протокол ARP сообщает вам, какой MAC-адрес принадлежит какому IP-адресу (уровень OSI 3 ). Имена машин обрабатываются DNS. Как правило, на вашем домашнем маршрутизаторе работает DNS-сервер, где вы либо можете указать, какое имя принадлежит какому MAC-адресу, либо он автоматически использует имена, если они предоставляются DHCP.

Так:

  1. Получите MAC-адреса подключенных станций, используя iw wlan0 station dump, где wlan0— это ПЧ вашей точки доступа. Это более надежно, чем кеш arp, потому что кеш arp может не включать все подключенные машины, а также может включать другие машины в других локальных сетях и т. д. arp-scanтакже менее надежен., потому что он попытается получить ответы ARP через WLAN, но точка доступа уже точно знает , какие машины подключены.

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

  3. Для каждого из IP-адресов выполните обратный поиск DNS для вашего домашнего маршрутизатора, например. host <ip-addr>.

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

2
27.01.2020, 22:09

Теги

Похожие вопросы