Как получить список ip адресов и MACов сети

Сейчас я работаю в Ubuntu в рамках программы плавного перехода меня из винды в более
операционную систему. Поэтому всё, что можно делать на моем уровне осознания в линукс я стараюсь там и делать.
Итак, задача в одно нажатие получить список активных IP адресов в сети и MAC адреса устройств. Но с начала поиграемся с выводом в консоль разной нужной информации.
Запускаем терминал, логинимся рутом (без рута nmap не всё показывает), я делаю

sudo -i

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

nmap -sP 192.168.1.1/24

ну или заданный диапазон адресов

nmap -sP 192.168.1.1-100

Чтобы увидеть список незанятых в данный момент IP адресов делаем так

nmap -v -sP 192.168.1.2-10 | grep down

Чтобы увидеть список занятых IP адресов и сопутствующую информацию (имя устройства в сети, если есть, MAC адрес и название производителя железки) то делаем так

nmap -sP 192.168.1.1-10 | grep -C 1 up

Если стоит задача найти какой IP раздался конкретному устройству с известным MAC ом — не проблема, вводим такую команду

nmap -sP 192.168.1.1-254 | grep 40:04:61:9d:a7:ac

Теперь сохраним найденную информацию об IP адресах в файл и дальше уже будем работать с ним.

nmap -sP 192.168.1.2-254 | grep -A 1 -B 1 up | grep -v "up" > /home/username/ip.txt

Коротко поясню, что тут происходит для тех, кто не сталкивался. Мы обрабатываем результат работы команды nmap с помощью grep. В первой обработке мы ищем в выводе nmap слово up и добавляем к ней предыдущюю и последюущую строки. Во второй обработке отбрасываем строку с вхождением up, т.к. она не содержит интересующую нас информацию. И всё что осталось записываем в файл ip.txt в юзерскую директорию. В файл записываем для того, чтобы сохранить состояние, ибо пока nmap отработает второй и третий раз может изменится его вывод, nmap отрабатывает далеко не мгновенно.

Теперь, чтоб сильно не заморачиваться выведем через промежуточные файлы MACи и IPшники.
Так выведем только список IP адресов и имен, которые записались в файл по предыдущей команде

grep -E '\b[0-9]{1,3}(\.[0-9]{1,3}){3}\b' /home/username/nmap.txt | cut -c 21-

А так список MACов и производителей

grep 'MAC' /home/username/nmap.txt | cut -c 14-

Дальше идея простая. Пишем скрипт, который будет последовательно исполнять нужные нам команды, пока не получим удобочитаемый файл с нужной инофрмацией. Для моей задачи главный столбик MAC адреса, поэтому в конечном файле сначала будут они, а потом к ним прилепится всё остальное.

Создаем в хоумдире файл ip.sh
записываем в него все команды, у меня получилось так:

1
2
3
4
5
#!/bin/bash
nmap -sP 192.168.1.1-254 | grep -A 1 -B 1 up | grep -v "up" > /home/username/nmap.txt
grep -E '\b[0-9]{1,3}(\.[0-9]{1,3}){3}\b' /home/username/nmap.txt | cut -c 21- > /home/username/ip.txt
grep 'MAC' /home/username/nmap.txt | cut -c 14- > /home/username/mac.txt
paste /home/username/mac.txt /home/username/ip.txt > /home/username/result.txt

Выдаём файлу разрешение запускаться

chmod +x ip.sh

И под рутом запускаем следующим образом

#./ip.sh

Как только скрипт отработает, в хоумдире создадутся файлики. Наш результат в файле result.txt

Опыт эксплуатацтии wi-fi через внешние антенны-радиомост

Для соединения двух физически удаленных друг от друга сегмента сети используем внешнюю точку доступа wi-fi. Это такие две тарелочки сетчатые с головкой, в которой размещается усилитель wi-fi сигнала. Одна настроена как access point, вторая, соответственно как station. Друг к другу они завязываются по mac адресу. Имеют web интерфейс для настройки.

Почти 2 года работала связка без проблем. В дождь-ветер бывают бОльшие чем обычно выпадения пакетов, из-за чего дисконектит из терминалов… но в целом решение рабочее.

В последнее время несколько раз сбрасывалась в default, хорошо, что не забыл после настройки слить конфиги. А на днях отвалилась удаленная часть сети и в web интерфейс я зайти не смог. Пришлось лезть на крышу… Заранее я подсуетился и выбил резервную железку, которая лежала у меня и ждала своего часа. Заливаю в резервную «головку» конфиг, проверяю на столе, лезу на крышу — устанавливаю. Кстати, пластиковые защелки ломаются на ура, так что осторожно нужно… а с другой стороны, вода, которая текла по пластику вместе с пылью образует тонкий слой абразива во всех зазорах, и чтоб вытянуть «головку» из «тарелки» пришлось приложить изнутри конструкции торцом перочинного ножика.

Установил, проверяю с компа — вебка не грузится, хотя само тело пингуется (статический IP). После акробатических этюдов на крышу с крыши я проверил всё, кроме кабеля (кабельного тестера под рукой не было). Глядя на сгущающиеся тучи, подумал, нужно тянуть кабель до перерыва, иначе придётся тянуть его по дождю….

В общем видимо перетертость в кабеле (или вода) приводила к замыканию проводников в витухе, отчего сбрасывалась прошива, а в конце концов привело к вышеописанным событиям. Что характерно, девайс подавал мне сигналы о этой печальной ситуации морганием 2х средних светодиодов поочередно красным светом.

Как только прокинул кабель, обжал концы, включил девайс, всё пошло. Кроме того, пришлось съездить на удаленную территорию и прописать в конфиг второй «тарелки» новый mac адрес. Так что на будущее подсказка для самого себя, ставь ту же головку, если она живая!