So erhalten Sie die IPv4-Adresse in PowerShell

  1. Verwenden Sie Get-NetIPAddress, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
  2. Verwenden Sie Get-NetIPConfiguration, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
  3. Verwenden Sie die Dns-Klasse, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
  4. Verwenden Sie Get-WmiObject, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
  5. Verwenden Sie Test-Connection, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
  6. Verwenden Sie Get-CimInstance, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen
  7. Fazit
So erhalten Sie die IPv4-Adresse in PowerShell

Systemadministratoren können verschiedene Aufgaben in PowerShell ausführen, einschließlich Netzwerkaufgaben.

Zum Beispiel ermöglicht PowerShell das Auflisten von IP-Adressen und IP-Konfigurationen, das Pingen eines Computers, das Abrufen von Eigenschaften von Netzwerkadaptern, das Durchführen von DHCP-Konfigurationsaufgaben und das Erstellen/Entfernen eines Netzwerkteils.

IP steht für Internet Protocol, und v4 steht für Version Vier.

Eine IPv4-Adresse ist eine 32-Bit-Ganzzahl, die eine Netzwerkschnittstelle auf einem Computer identifiziert. Sie wird in punktierter Dezimalnotation ausgedrückt.

Sie hat vier 8-Bit-Felder, die durch Punkte getrennt sind, und jedes 8-Bit-Feld repräsentiert ein Byte der IPv4-Adresse. Dieses Tutorial vermittelt Ihnen, wie Sie eine IPv4-Adresse in einer Variablen in PowerShell speichern.

Verwenden Sie Get-NetIPAddress, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen

Das Cmdlet Get-NetIPAddress ruft die IP-Adresskonfiguration ab, wie IPv4-Adressen, IPv6-Adressen und die IP-Schnittstellen, die mit Adressen verbunden sind.

Wenn es ohne Parameter ausgeführt wird, druckt es die gesamte IP-Adresskonfiguration für den Computer.

Der Parameter --AddressFamily wird verwendet, um ein Array von IP-Adressfamilien anzugeben. Das Get-NetIPAddress ruft die IP-Adresskonfiguration ab, die mit den Adressfamilien dieses Parameters übereinstimmt.

Die akzeptierten Werte sind IPv4 und IPv6.

Zum Beispiel holt der folgende Befehl Informationen über die IP-Adresskonfiguration für alle IPv4-Adressen auf dem Computer.

Get-NetIPAddress -AddressFamily IPv4

Dieser Befehl erhält nur die IPv4-Adresse des Computers.

(Get-NetIPAddress | Where-Object { $_.AddressState -eq "Preferred" -and $_.ValidLifetime -lt "24:00:00" }).IPAddress

Im bereitgestellten Code-Snippet verwenden wir das Cmdlet Get-NetIPAddress, um IP-Adressdaten zu sammeln, gefolgt vom Cmdlet Where-Object, um Ergebnisse basierend auf spezifischen Kriterien, die in geschweifte Klammern eingeschlossen sind, zu filtern. Die Bedingungen innerhalb des Where-Object-Blocks, gekennzeichnet durch die Vergleichsoperatoren -eq und -lt, zielen auf IP-Adressen im Bevorzugt-Status und solche mit einer gültigen Laufzeit von weniger als 24 Stunden ab.

Durch den Zugriff auf die IPAddress-Eigenschaft der gefilterten Ergebnisse, eingeschlossen in Klammern, isolieren und zeigen wir die IPv4-Adressen an, die die festgelegten Bedingungen erfüllen. Diese kurze Analyse hebt den pipeline-gesteuerten Ansatz in PowerShell hervor, bei dem jedes Cmdlet Datenströme effizient verarbeitet, um verfeinerte Ausgaben zu erzeugen.

Ausgabe:

powershell IP-Adresse abrufen - Ausgabe 1

Sie können auch den folgenden Befehl verwenden, um eine IPv4-Adresse in PowerShell zu erhalten.

Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex $(Get-NetConnectionProfile | Select-Object -ExpandProperty InterfaceIndex) | Select-Object -ExpandProperty IPAddress

Im bereitgestellten Codebeispiel verwenden wir das Cmdlet Get-NetIPAddress, um IP-Adressinformationen abzurufen. Durch die Angabe von -AddressFamily IPv4 beschränken wir die Ergebnisse auf IPv4-Adressen.

Der Parameter -InterfaceIndex wird mit dem Schnittstellenindex gefüllt, der mit Get-NetConnectionProfile abgerufen wurde, um sicherzustellen, dass IP-Adressen abgerufen werden, die mit der aktuellen Netzwerkverbindung verbunden sind. Schließlich verwenden wir Select-Object -ExpandProperty IPAddress, um die IP-Adressen aus der Ausgabe zu extrahieren und anzuzeigen.

Ausgabe:

powershell IP-Adresse abrufen - Ausgabe 2

Verwenden Sie Get-NetIPConfiguration, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen

Das Cmdlet Get-NetIPConfiguration ist ein leistungsstarkes Werkzeug, das verwendet wird, um IP-Adressinformationen auf Windows-Systemen abzurufen. Diese Methode bietet umfassende Daten über IP-Konfigurationen, einschließlich IPv4- und IPv6-Adressen, Subnetzmasken, Standardgateways und Status der Netzwerkadapter, was Administratoren und Skriptern bei netzwerkbezogenen Aufgaben hilft.

Beispiel:

(Get-NetIPConfiguration | Where-Object { $_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.status -ne "Disconnected" }).IPv4Address.IPAddress

Im bereitgestellten Code-Snippet verwenden wir das Cmdlet Get-NetIPConfiguration, um IP-Adressinformationen zu sammeln, gefolgt vom Cmdlet Where-Object, um Ergebnisse basierend auf spezifischen Kriterien, die in geschweifte Klammern eingeschlossen sind, zu filtern. Die Bedingungen innerhalb des Where-Object-Blocks, gekennzeichnet durch den Vergleichsoperator -ne, zielen auf Konfigurationen mit einem nicht nullen IPv4-Standardgateway und Netzwerkadaptern, die sich nicht im Getrennt-Status befinden.

Durch den Zugriff auf die IPAddress-Eigenschaft der gefilterten Ergebnisse, eingeschlossen in Klammern, isolieren und zeigen wir die IPv4-Adressen an, die die festgelegten Kriterien erfüllen. Diese kurze Analyse hebt die Fähigkeit der PowerShell-Pipeline hervor, Datenströme effizient zu verarbeiten, was zu verfeinerten Ausgaben führt, die bei Netzwerkconfigurations- und Fehlerbehebungsaufgaben helfen.

Ausgabe:

powershell holen ip-adresse - ausgabe 3

Verwenden Sie die Dns-Klasse, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen

Die Dns-Klasse ist eine statische Klasse, die Informationen über einen bestimmten Host aus dem Internet-Domain-Name-System (DNS) abruft. Die Methode GetHostAddresses gibt die IP-Adressen für den angegebenen Host zurück.

Dieser Ansatz kann besonders nützlich sein, wenn in Umgebungen gearbeitet wird, in denen der direkte Zugriff auf Cmdlets wie Get-NetIPConfiguration oder Get-NetIPAddress nicht verfügbar oder nicht geeignet ist.

Beispiel:

([System.Net.DNS]::GetHostAddresses($env:computername) | Where-Object { $_.AddressFamily -eq "InterNetwork" } | Select-Object IPAddressToString)[0].IPAddressToString

Im bereitgestellten Codebeispiel verwenden wir [System.Net.DNS]::GetHostAddresses, um die IP-Adressen abzurufen, die mit dem lokalen Computer verbunden sind, der durch $env:computername angegeben wird. Wir filtern dann die Ergebnisse mit Where-Object, um nur IPv4-Adressen auszuwählen (AddressFamily -eq "InterNetwork").

Als nächstes verwenden wir Select-Object IPAddressToString, um die IP-Adresse als Zeichenfolgenrepräsentation zu extrahieren. Schließlich wählt [0].IPAddressToString die erste IP-Adresse aus den Ergebnissen aus und zeigt sie als Zeichenfolge an.

Ausgabe:

powershell ip-Adresse abrufen - Ausgabe 4

Verwenden Sie Get-WmiObject, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen

Das Cmdlet Get-WmiObject ruft Instanzen von Windows Management Instrumentation (WMI)-Klassen oder Informationen über die verfügbaren WMI-Klassen ab.

Die Win32_NetworkAdapterConfiguration ist eine WMI-Klasse, die die Attribute und Verhaltensweisen eines Netzwerkadapters darstellt.

Beispiel:

(Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.DHCPEnabled -ne $null -and $_.DefaultIPGateway -ne $null }).IPAddress | Select-Object -First 1

Im bereitgestellten Code-Snippet verwenden wir Get-WmiObject, um die Win32_NetworkAdapterConfiguration-Klasse abzufragen und Details zur Konfiguration des Netzwerkadapters abzurufen. Wir wenden dann einen Where-Object-Filter an, um Konfigurationen auszuwählen, bei denen DHCP aktiviert ist und ein Standardgateway angegeben ist.

Dies stellt sicher, dass wir IP-Adressen abrufen, die mit aktiven Netzwerkverbindungen verbunden sind. Schließlich verwenden wir Select-Object -First 1, um die erste IP-Adresse aus den Ergebnissen auszuwählen.

Ausgabe:

powershell IP-Adresse abrufen - Ausgabe 5

Verwenden Sie Test-Connection, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen

Das Cmdlet Test-Connection sendet ICMP-Echoanforderungspakete oder Pings an einen oder mehrere Computer und gibt die Echoantworten zurück. Es kann auch feststellen, ob ein bestimmter Computer über ein IP-Netzwerk kontaktiert werden kann.

Beispiel:

(Test-Connection -ComputerName (hostname) -Count 1 | select -ExpandProperty IPv4Address).IPAddressToString

Im bereitgestellten Codebeispiel verwenden wir Test-Connection, um einen Remote-Host zu pingen, der durch (hostname) angegeben ist, und um netzwerkbezogene Informationen abzurufen. Der Parameter -Count 1 stellt sicher, dass nur eine einzige Echoanfrage an den Zielcomputer gesendet wird, um den Netzwerkverkehr zu minimieren.

Wir verwenden dann Select-Object -ExpandProperty IPv4Address, um die IPv4-Adresse des Remote-Hosts aus der Ausgabe zu extrahieren und anzuzeigen.

Wenn Sie virtuelle Adapter haben, gibt es eine IPv4-Adresse von virtuellen Adaptern (z.B. VPN, Hyper-V, Docker) zurück.

Ausgabe:

powershell ip-Adresse abrufen - Ausgabe 6

Sie können auch diesen Befehl verwenden, der die gleiche Ausgabe wie oben zurückgibt.

(Test-Connection -ComputerName $env:computername -Count 1).IPv4Address.IPAddressToString

Im bereitgestellten Codebeispiel verwenden wir Test-Connection, um das lokale System zu pingen, das durch $env:computername angegeben wird, und um netzwerkbezogene Informationen abzurufen. Durch die Angabe von -Count 1 senden wir eine einzelne Ping-Anfrage an das lokale System, um den Netzwerkverkehr zu minimieren.

Wir greifen dann auf die IPv4Address-Eigenschaft des Ausgabebjekts zu und greifen weiter auf die IPAddressToString-Eigenschaft zu, um die IPv4-Adresse als Zeichenfolge abzurufen.

Ausgabe:

powershell ip-Adresse abrufen - Ausgabe 7

Verwenden Sie Get-CimInstance, um eine IPv4-Adresse in eine Variable in PowerShell zu bekommen

Das Cmdlet Get-CimInstance bietet einen robusten Ansatz, um Informationen aus dem Windows Management Instrumentation (WMI)-Repository abzurufen, was Administratoren ermöglicht, Netzwerkadapterkonfigurationen einfach abzufragen. Durch die Zielsetzung der Win32_NetworkAdapterConfiguration CIM-Klasse ermöglicht diese Methode den Benutzern, umfassende Details zu Netzwerkeinstellungen, einschließlich IP-Adressen, Subnetzmasken, Standardgateways usw., zu erhalten.

Beispiel:

(Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $null }).IPAddress[0]

Im bereitgestellten Codebeispiel verwenden wir Get-CimInstance, um die Win32_NetworkAdapterConfiguration CIM-Klasse abzufragen und Informationen über die Konfiguration der Netzwerkadapter abzurufen. Das Cmdlet Where-Object filtert die Ergebnisse, um Konfigurationen auszuwählen, bei denen die IPAddress-Eigenschaft nicht null ist, um sicherzustellen, dass nur Netzwerkadapterkonfigurationen mit zugewiesenen IP-Adressen zurückgegeben werden.

Durch den Zugriff auf den [0] Index wählen wir die erste IP-Adresse aus dem Ergebnis aus, was nützlich sein kann, wenn mehrere Netzwerkadapter oder Adressen vorhanden sind. Dieser Ansatz bietet Administratoren eine prägnante Möglichkeit, die primäre IP-Adresse zu erhalten, die mit dem System verbunden ist, was die Netzwerkverwaltung und Fehlerbehebung erleichtert.

Ausgabe:

powershell ip-Adresse abrufen - Ausgabe 8

Fazit

In diesem Artikel haben wir verschiedene Methoden untersucht, um die IPv4-Adresse in PowerShell abzurufen, indem wir verschiedene Cmdlets und Klassen im PowerShell-Ökosystem genutzt haben. Beginnend mit Get-NetIPAddress haben wir gelernt, wie man IP-Adressinformationen mit spezifischen Filteroptionen abruft, gefolgt von Get-NetIPConfiguration, das umfassende Daten über IP-Konfigurationen auf Windows-Systemen bietet.

Wir haben dann die Verwendung der Dns-Klasse für Szenarien, in denen der direkte Zugriff auf Cmdlets nicht verfügbar ist, untersucht. Darüber hinaus haben wir die Verwendung von Get-WmiObject untersucht, um Netzwerkadapterkonfigurationen über WMI abzufragen, und Test-Connection, um Remote-Hosts zu pingen und IP-Adressdetails zu sammeln.

Schließlich haben wir uns mit der Nutzung von Get-CimInstance beschäftigt, um Netzwerkadapterkonfigurationen effizient aus dem WMI-Repository abzurufen. Jede Methode bietet einzigartige Vorteile und richtet sich nach unterschiedlichen Anwendungsfällen und Szenarien in der Netzwerkadministration und Fehlerbehebung.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website