/
bobandrey37
/
ScriptGarage
Обзор
Документация
Войти
/
bobandrey37
/
ScriptGarage
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
macip.sh
43 строки
2 KB
bobkov
.
26 ноя 2025, 14:52
26 ноя 2025, 14:52
27329d7
Код
Авторство
О чём код?
#!/bin/bash # Проверяем, что передан аргумент - искомый MAC-адрес if [ $# -ne 2 ]; then echo "$0 <net> <mac-address> в любом формате" echo "Пример:" echo "$0 10.103.8.0/22 00:46:b8:0a:04:bd" exit 1 fi # MAC-адрес, который необходимо найти net="$1" mac_address="$2" sudo ip neigh flush all # Приведение к нижнему регистру MAC-адрес mac_address_lower=$(echo "$mac_address" | tr '[:upper:]' '[:lower:]') # Удаление всех символов, кроме шестнадцатеричных цифр и букв mac_address_clean=$(echo "$mac_address_lower" | sed 's/[^a-f0-9]//g') # Форматирование в стандартный вид formatted_mac=$(echo "$mac_address_clean" | sed 's/\(..\)/\1:/g; s/:$//') # Поиск IP-адресов по MAC-адресу с помощью arp-scan ip_addresses=$(arp-scan $net | grep $formatted_mac | awk '{print $1}') if [ -z "$ip_addresses" ]; then echo "NoIP $formatted_mac NoHostName" fi # Проверка найденных IP-адресов на наличие hostname for ip_address in $ip_addresses; do # hostname=$(nslookup $ip_address | grep name | awk '{print $4}') hostname=$(host $ip_address | grep name | awk '{print $5}') mac=$(arp-scan $ip_address | grep $formatted_mac | awk '{print $2}') if [ -z "$hostname" ]; then echo "$ip_address $mac NoHostName" else echo "$ip_address $mac $hostname" fi done