Comment obtenir l'adresse IPv4 dans PowerShell

  1. Utilisez Get-NetIPAddress pour obtenir l’adresse IPv4 dans une variable dans PowerShell
  2. Utilisez Get-NetIPConfiguration pour obtenir l’adresse IPv4 dans une variable dans PowerShell
  3. Utilisez Dns class pour obtenir l’adresse IPv4 dans une variable dans PowerShell
  4. Utilisez Get-WmiObject pour obtenir l’adresse IPv4 dans une variable dans PowerShell
  5. Utilisez Test-Connection pour obtenir l’adresse IPv4 dans une variable dans PowerShell
  6. Utilisez Get-CimInstance pour obtenir l’adresse IPv4 dans une variable dans PowerShell
  7. Conclusion
Comment obtenir l'adresse IPv4 dans PowerShell

Les administrateurs système peuvent effectuer diverses tâches dans PowerShell, y compris des tâches de mise en réseau.

Par exemple, PowerShell vous permet de lister les adresses IP et la configuration IP, de pinger un ordinateur, de récupérer les propriétés des adaptateurs réseau, d’effectuer des tâches de configuration DHCP, et de créer/supprimer un partage réseau.

IP signifie Protocole Internet, et v4 signifie Version Quatre.

L’adresse IPv4 est un entier de 32 bits qui identifie une interface réseau sur une machine. Elle est exprimée en notation décimale pointée.

Elle a quatre champs de 8 bits séparés par des points, et chaque champ de 8 bits représente un octet de l’adresse IPv4. Ce tutoriel vous apprendra à obtenir une adresse IPv4 dans une variable dans PowerShell.

Utilisez Get-NetIPAddress pour obtenir l’adresse IPv4 dans une variable dans PowerShell

Le cmdlet Get-NetIPAddress obtient la configuration de l’adresse IP, comme les adresses IPv4, les adresses IPv6, et les interfaces IP associées aux adresses.

Lorsqu’il est exécuté sans paramètres, il imprime la configuration complète de l’adresse IP pour l’ordinateur.

Le paramètre --AddressFamily est utilisé pour spécifier un tableau de familles d’adresses IP. Le Get-NetIPAddress obtient la configuration de l’adresse IP qui correspond aux familles d’adresses avec ce paramètre.

Les valeurs acceptées sont IPv4 et IPv6.

Par exemple, la commande ci-dessous obtient des informations sur la configuration de l’adresse IP pour toutes les adresses IPv4 sur l’ordinateur.

Get-NetIPAddress -AddressFamily IPv4

Cette commande obtient uniquement l’adresse IPv4 de l’ordinateur.

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

Dans l’extrait de code fourni, nous utilisons le cmdlet Get-NetIPAddress pour rassembler des données sur les adresses IP, suivi du cmdlet Where-Object pour filtrer les résultats en fonction de critères spécifiques encapsulés dans des accolades. Les conditions dans le bloc Where-Object, désignées par les opérateurs de comparaison -eq et -lt, ciblent les adresses IP dans l’état Préféré et celles ayant une durée de validité inférieure à 24 heures, respectivement.

En accédant à la propriété IPAddress des résultats filtrés, encapsulée dans des parenthèses, nous isolons et affichons les adresses IPv4 répondant aux conditions établies. Cette analyse concise souligne l’approche pilotée par des pipelines dans PowerShell, où chaque cmdlet traite efficacement les flux de données pour produire des sorties raffinées.

Sortie :

powershell obtenir l’adresse ip - sortie 1

Vous pouvez également utiliser la commande suivante pour obtenir une adresse IPv4 dans PowerShell.

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

Dans l’exemple de code fourni, nous utilisons le cmdlet Get-NetIPAddress pour récupérer des informations sur les adresses IP. En spécifiant -AddressFamily IPv4, nous restreignons les résultats aux adresses IPv4.

Le paramètre -InterfaceIndex est alimenté avec l’index d’interface récupéré en utilisant Get-NetConnectionProfile, assurant que les adresses IP associées à la connexion réseau actuelle sont obtenues. Enfin, nous utilisons Select-Object -ExpandProperty IPAddress pour extraire et afficher les adresses IP à partir de la sortie.

Sortie :

powershell obtenir adresse ip - sortie 2

Utilisez Get-NetIPConfiguration pour obtenir l’adresse IPv4 dans une variable dans PowerShell

Le cmdlet Get-NetIPConfiguration est un outil puissant utilisé pour récupérer des informations sur les adresses IP sur les systèmes Windows. Cette méthode fournit des données complètes sur les configurations IP, y compris les adresses IPv4 et IPv6, les masques de sous-réseau, les passerelles par défaut et les états des adaptateurs réseau, aidant les administrateurs et les scripteurs dans les tâches liées au réseau.

Exemple :

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

Dans l’extrait de code fourni, nous utilisons le cmdlet Get-NetIPConfiguration pour rassembler des informations sur les adresses IP, suivi du cmdlet Where-Object pour filtrer les résultats en fonction de critères spécifiques encapsulés dans des accolades. Les conditions dans le bloc Where-Object, désignées par l’opérateur de comparaison -ne, ciblent les configurations avec une passerelle par défaut IPv4 non nulle et les adaptateurs réseau qui ne sont pas dans un état Déconnecté, respectivement.

En accédant à la propriété IPAddress des résultats filtrés, encapsulée dans des parenthèses, nous isolons et affichons les adresses IPv4 qui répondent aux critères établis. Cette analyse concise souligne la capacité du pipeline PowerShell à traiter efficacement les flux de données, permettant des sorties raffinées qui aident dans les tâches de configuration et de dépannage réseau.

Sortie :

powershell obtenir adresse ip - sortie 3

Utilisez Dns class pour obtenir l’adresse IPv4 dans une variable dans PowerShell

La Dns class est une classe statique qui obtient des informations sur un hôte spécifique à partir du Système de Noms de Domaine (DNS) Internet. La méthode GetHostAddresses renvoie les adresses IP pour l’hôte spécifié.

Cette approche peut être particulièrement utile lorsque vous travaillez dans des environnements où l’accès direct aux cmdlets comme Get-NetIPConfiguration ou Get-NetIPAddress n’est pas disponible ou pas approprié.

Exemple :

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

Dans l’exemple de code fourni, nous utilisons [System.Net.DNS]::GetHostAddresses pour récupérer les adresses IP associées à l’ordinateur local spécifié par $env:computername. Nous filtrons ensuite les résultats en utilisant Where-Object pour sélectionner uniquement les adresses IPv4 (AddressFamily -eq "InterNetwork").

Ensuite, nous utilisons Select-Object IPAddressToString pour extraire l’adresse IP sous la forme d’une représentation sous forme de chaîne. Enfin, [0].IPAddressToString sélectionne la première adresse IP des résultats et l’affiche sous forme de chaîne.

Sortie :

powershell obtenir adresse ip - sortie 4

Utilisez Get-WmiObject pour obtenir l’adresse IPv4 dans une variable dans PowerShell

Le cmdlet Get-WmiObject obtient des instances de classes Windows Management Instrumentation (WMI) ou des informations sur les classes WMI disponibles.

La classe Win32_NetworkAdapterConfiguration est une classe WMI qui représente les attributs et comportements d’un adaptateur réseau.

Exemple :

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

Dans l’extrait de code fourni, nous utilisons Get-WmiObject pour interroger la classe Win32_NetworkAdapterConfiguration, récupérant les détails de configuration des adaptateurs réseau. Nous appliquons ensuite un filtre Where-Object pour sélectionner les configurations où DHCP est activé et une passerelle par défaut est spécifiée.

Cela garantit que nous récupérons des adresses IP associées à des connexions réseau actives. Enfin, nous utilisons Select-Object -First 1 pour sélectionner la première adresse IP des résultats.

Sortie :

powershell obtenir l’adresse ip - sortie 5

Utilisez Test-Connection pour obtenir l’adresse IPv4 dans une variable dans PowerShell

Le cmdlet Test-Connection envoie des paquets de requête d’écho ICMP, ou pings, à un ou plusieurs ordinateurs et renvoie les réponses aux échos. Il peut également déterminer si un ordinateur spécifique peut être contacté à travers un réseau IP.

Exemple :

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

Dans l’exemple de code fourni, nous utilisons Test-Connection pour pinger un hôte distant spécifié par (hostname) et récupérer des informations liées au réseau. Le paramètre -Count 1 garantit qu’une seule requête d’écho est envoyée à l’ordinateur cible, minimisant le trafic réseau.

Nous utilisons ensuite Select-Object -ExpandProperty IPv4Address pour extraire et afficher l’adresse IPv4 de l’hôte distant à partir de la sortie.

Si vous avez des adaptateurs virtuels, cela retourne une adresse IPv4 des adaptateurs virtuels (par exemple, VPN, Hyper-V, Docker).

Sortie :

powershell obtenir l’adresse ip - sortie 6

Vous pouvez également utiliser cette commande, qui retourne la même sortie que ci-dessus.

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

Dans l’exemple de code fourni, nous utilisons Test-Connection pour pinger le système local spécifié par $env:computername et récupérer des informations liées au réseau. En spécifiant -Count 1, nous envoyons une seule requête ping au système local, minimisant le trafic réseau.

Nous accédons ensuite à la propriété IPv4Address de l’objet de sortie et accédons encore à la propriété IPAddressToString pour récupérer l’adresse IPv4 sous forme de chaîne.

Sortie :

get-ipaddress - sortie 7

Utilisez Get-CimInstance pour obtenir l’adresse IPv4 dans une variable dans PowerShell

Le cmdlet Get-CimInstance offre une approche robuste pour récupérer des informations du référentiel Windows Management Instrumentation (WMI), permettant aux administrateurs d’interroger facilement les configurations des adaptateurs réseau. En ciblant la classe CIM Win32_NetworkAdapterConfiguration, cette méthode permet aux utilisateurs d’obtenir des détails complets sur les paramètres réseau, y compris les adresses IP, les masques de sous-réseau, les passerelles par défaut, et plus encore.

Exemple :

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

Dans l’exemple de code fourni, nous utilisons Get-CimInstance pour interroger la classe CIM Win32_NetworkAdapterConfiguration, récupérant des informations sur les configurations des adaptateurs réseau. Le cmdlet Where-Object filtre les résultats pour sélectionner les configurations où la propriété IPAddress n’est pas nulle, garantissant que seules les configurations des adaptateurs réseau avec des adresses IP attribuées sont retournées.

En accédant à l’index [0], nous sélectionnons la première adresse IP des résultats, ce qui peut être utile lorsque nous traitons avec plusieurs adaptateurs réseau ou adresses. Cette approche fournit aux administrateurs un moyen concis de récupérer l’adresse IP principale associée au système, facilitant les tâches de gestion et de dépannage réseau.

Sortie :

powershell obtenir l’adresse ip - sortie 8

Conclusion

Dans cet article, nous avons exploré différentes méthodes pour récupérer l’adresse IPv4 dans PowerShell, en utilisant différents cmdlets et classes disponibles dans l’écosystème PowerShell. En commençant par Get-NetIPAddress, nous avons appris à récupérer des informations sur les adresses IP avec des options de filtrage spécifiques, suivi de Get-NetIPConfiguration, qui fournit des données complètes sur les configurations IP sur les systèmes Windows.

Nous avons ensuite exploré l’utilisation de la classe Dns pour des scénarios où l’accès direct aux cmdlets n’est pas disponible. De plus, nous avons examiné l’utilisation de Get-WmiObject pour interroger les configurations des adaptateurs réseau via WMI et Test-Connection pour pinger des hôtes distants et recueillir des détails sur les adresses IP.

Enfin, nous avons approfondi l’utilisation de Get-CimInstance pour récupérer efficacement les configurations des adaptateurs réseau depuis le référentiel WMI. Chaque méthode offre des avantages uniques, répondant à différents cas d’utilisation et scénarios dans les tâches d’administration et de dépannage réseau.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
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