Skripte/Utility/IpFromMac.sh

33 lines
813 B
Bash

#!/bin/bash
# === IMPORTS ===
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/Log.sh"
# === Funktionen ===
get_ip_from_mac() {
local mac="$1"
# Aktuelle Netzwerkschnittstelle und Subnetz ermitteln
local subnet=$(ip -o -4 addr show | awk '$2 != "lo" {split($4, a, "/"); print a[1] "/" a[2]}' | head -n 1)
if [[ -z "$subnet" ]]; then
log "Fehler: Konnte Subnetz nicht ermitteln."
return 1
fi
log "Scanne Netzwerk $subnet nach MAC-Adresse $mac..."
# Netzwerk nach der MAC-Adresse scannen
local ip=$(sudo nmap -sn "$subnet" | grep -B 2 -i "$mac" | awk '/Nmap scan report/{print $5}')
if [[ -z "$ip" ]]; then
log "Fehler: Keine IP für MAC-Adresse $mac gefunden."
return 1
fi
echo "$ip"
return 0
}