PowerShell – 14 – IPv4/v6 und MAC ermitteln ohne zusätzliche cmdlets

Es gibt bereits vorgefertigte cmdlets welches es ermöglichen die IPv4/v6 etc. zu betrachten. Jedoch sind diese nicht standardmäßig installiert.
Ich möchte hier eine einfache und rudimentäre Variante vorstellen mit der es möglich ist die IP, zugehörige MAC-Adresse sowie den Adapternamen zu ermitteln. Das Ganze kann anschließend gleich in ein Log geschrieben werden.

IP-Adresse ermitteln

Es gibt zwei einfache Möglichkeiten die IP des Clients zu ermitteln.

Test-Connection

Mittels des Clientname kann mit der Funktion Test-Connection die IP-Adresse ermittelt werden. Um den Clientnamen zu ermitteln gibt es die Umgebungsvariable (Environment) $env:COMPUTERNAME. Diese gibt den Namen des Clients wieder.

Zu beachten gilt, das hierbei nur die aktive IP-Adresse angezeigt wird. im Falle es gibt mehrere vergebene IPs durch parallele Nutzung eiens WLAN- und einem LAN-Anschluss.

ipconfig

Die zweite Variante ist die klassische aus der CMD bekannte mittels ipconfig.
Mittels des Schalters /all werden alle Bereitgestellten Adapter mit den jeweiligen Einstellungen angezeigt. Hier bei ist es etwas mühselig herauszufinden wo die gesuchte IP-Adresse steht. Dennoch wird ipconfig die Basis dafür bilden alle Informationen gefiltert zu erhalten.

MAC-Adresse ermitteln

Unter ipconfig /all ist die jeweilige MAC-Adresse zur IP-Adresse vermerkt.

Ausgabe der gewünschten Daten

Um nun zu ermitteln welche IPs aktuell für den Client vergeben sind, speichere ich die Ausgabe von ipconfig /all in einer Variable $IPRaw und analysiere diese zeilenweise. dabei habe ich versuch den Text  auf sprachlich neutral gewählte Schlagwörter zu filtern. Die Schlagworte sind IPv4 und IPv6 sowie Phy, Phy steht hierbei für Physikalische Adresse und wird und die MAC-Adresse übergeben.

Script – Funktionsweise

Im Script wird die Variable $IPRaw Zeile für Zeile analysiert. Wird eine Überstimmung von „IPv4“ gefunden, wird der Text wieder rückwärtig nach dem Suchbegriff „Phy“ durchsucht um die MAC-Adresse zu ermitteln. Diese Informationen werden in den Hilfsvariablen $IPv4, $MAC, sowie $Adaptername zwischengespeichert und mittels Split(), Trim() und Replace() zurecht geschnitten. Siehe dazu PowerShell – 03.2 – Strings bearbeiten und untersuchen mit Funktionen wie Trim(), Substring(), Contains(), ToLower(), ToUpper(), StartsWith(), EndsWith()

Das Array $IPData kann hierbei ignoriert werden. Dieses dient für eine spätere Verwendung in anderen Scripten. Dazu ein anderes Mal mehr.

Script – IPv4

Script – IPv6

Hier wurde lediglich die Suche von „*IPv4*“ auf „*IPv6*“ abgeändert.

 

Download Script

Die Scripte können hier ebenfalls heruntergeladen werden.
[wpfilebase tag=file id=15 /]
[wpfilebase tag=file id=16 /]

rewe

Ein Gedanke zu „PowerShell – 14 – IPv4/v6 und MAC ermitteln ohne zusätzliche cmdlets“

  1. Hi, ich musste im IPv6 Skript folgende Zeile anpassen, damit nicht nur der erste Block bis zum nächsten Doppelpunkt ausgegeben wird.
    $v6_IPv6 = $Row.Split(„:“)[1].trim()
    $v6_IPv6 = $Row.Split(„:“,2)[1].trim()

    Vielen Dank für Deine Arbeit!
    VG

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert