Come ottenere l'indirizzo IPv4 in PowerShell
-
Usa
Get-NetIPAddress
per ottenere l’indirizzo IPv4 in una variabile in PowerShell -
Usa
Get-NetIPConfiguration
per ottenere l’indirizzo IPv4 in una variabile in PowerShell -
Usa
Dns class
per ottenere l’indirizzo IPv4 in una variabile in PowerShell -
Usa
Get-WmiObject
per ottenere l’indirizzo IPv4 in una variabile in PowerShell -
Usa
Test-Connection
per ottenere l’indirizzo IPv4 in una variabile in PowerShell -
Usa
Get-CimInstance
per ottenere l’indirizzo IPv4 in una variabile in PowerShell - Conclusione

Gli amministratori di sistema possono eseguire varie attività in PowerShell, comprese le attività di rete.
Ad esempio, PowerShell ti consente di elencare gli indirizzi IP e la configurazione IP, pingare un computer, recuperare le proprietà dell’adattatore di rete, eseguire attività di configurazione DHCP e creare/rimuovere una condivisione di rete.
IP significa Internet Protocol, e v4 significa Versione Quattro.
L’indirizzo IPv4 è un intero a 32 bit che identifica un’interfaccia di rete su una macchina. È espresso in notazione decimale puntata.
Ha quattro campi da 8 bit separati da punti, e ciascun campo da 8 bit rappresenta un byte dell’indirizzo IPv4. Questo tutorial ti insegnerà a inserire un indirizzo IPv4 in una variabile in PowerShell.
Usa Get-NetIPAddress
per ottenere l’indirizzo IPv4 in una variabile in PowerShell
Il cmdlet Get-NetIPAddress
ottiene la configurazione dell’indirizzo IP, come indirizzi IPv4, indirizzi IPv6 e le interfacce IP associate agli indirizzi.
Quando viene eseguito senza parametri, stampa l’intera configurazione dell’indirizzo IP per il computer.
Il parametro --AddressFamily
viene utilizzato per specificare un array di famiglie di indirizzi IP. Il Get-NetIPAddress
ottiene la configurazione dell’indirizzo IP che corrisponde alle famiglie di indirizzi con questo parametro.
I valori accettati sono IPv4
e IPv6
.
Ad esempio, il comando qui sotto ottiene informazioni sulla configurazione dell’indirizzo IP per tutti gli indirizzi IPv4 presenti sul computer.
Get-NetIPAddress -AddressFamily IPv4
Questo comando ottiene solo l’indirizzo IPv4
del computer.
(Get-NetIPAddress | Where-Object { $_.AddressState -eq "Preferred" -and $_.ValidLifetime -lt "24:00:00" }).IPAddress
Nel frammento di codice fornito, utilizziamo il cmdlet Get-NetIPAddress
per raccogliere i dati sugli indirizzi IP, seguito dal cmdlet Where-Object
per filtrare i risultati in base a criteri specifici racchiusi tra parentesi graffe. Le condizioni all’interno del blocco Where-Object
, contrassegnate dagli operatori di confronto -eq
e -lt
, mirano agli indirizzi IP nello stato Preferred
e a quelli con una durata valida inferiore a 24 ore, rispettivamente.
Accedendo alla proprietà IPAddress
dei risultati filtrati, racchiusa tra parentesi, isoliamo e visualizziamo gli indirizzi IPv4 che soddisfano le condizioni stabilite. Questa analisi concisa mette in evidenza l’approccio basato su pipeline in PowerShell, dove ogni cmdlet elabora in modo efficiente i flussi di dati per produrre output raffinati.
Output:
Puoi anche utilizzare il seguente comando per ottenere un indirizzo IPv4 in PowerShell.
Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex $(Get-NetConnectionProfile | Select-Object -ExpandProperty InterfaceIndex) | Select-Object -ExpandProperty IPAddress
Nel frammento di codice fornito, utilizziamo il cmdlet Get-NetIPAddress
per recuperare le informazioni sugli indirizzi IP. Specificando -AddressFamily IPv4
, limitiamo i risultati agli indirizzi IPv4.
Il parametro -InterfaceIndex
viene popolato con l’indice dell’interfaccia recuperato utilizzando Get-NetConnectionProfile
, assicurandoci che vengano ottenuti solo gli indirizzi IP associati alla connessione di rete attuale. Infine, usiamo Select-Object -ExpandProperty IPAddress
per estrarre e visualizzare gli indirizzi IP dall’output.
Output:
Usa Get-NetIPConfiguration
per ottenere l’indirizzo IPv4 in una variabile in PowerShell
Il cmdlet Get-NetIPConfiguration
è uno strumento potente utilizzato per recuperare informazioni sull’indirizzo IP nei sistemi Windows. Questo metodo fornisce dati completi sulle configurazioni IP, inclusi indirizzi IPv4 e IPv6, maschere di sottorete, gateway predefiniti e stati degli adattatori di rete, aiutando gli amministratori e gli scripter in attività relative alla rete.
Esempio:
(Get-NetIPConfiguration | Where-Object { $_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.status -ne "Disconnected" }).IPv4Address.IPAddress
Nel frammento di codice fornito, utilizziamo il cmdlet Get-NetIPConfiguration
per raccogliere informazioni sull’indirizzo IP, seguito dal cmdlet Where-Object
per filtrare i risultati in base a criteri specifici racchiusi tra parentesi graffe. Le condizioni all’interno del blocco Where-Object
, contrassegnate dall’operatore di confronto -ne
, mirano a configurazioni con un gateway predefinito IPv4 non nullo e adattatori di rete che non sono in stato Disconnected
, rispettivamente.
Accedendo alla proprietà IPAddress
dei risultati filtrati, racchiusa tra parentesi, isoliamo e visualizziamo gli indirizzi IPv4 che soddisfano i criteri stabiliti. Questa analisi concisa evidenzia la capacità della pipeline di PowerShell di elaborare in modo efficiente i flussi di dati, consentendo output raffinati che assistono nella configurazione e nel troubleshooting della rete.
Output:
Usa Dns class
per ottenere l’indirizzo IPv4 in una variabile in PowerShell
La class Dns
è una classe statica che ottiene informazioni su un host specifico dal Sistema di Nomi di Dominio Internet (DNS). Il metodo GetHostAddresses
restituisce gli indirizzi IP per l’host specificato.
Questo approccio può essere particolarmente utile quando si lavora in ambienti in cui l’accesso diretto a cmdlet come Get-NetIPConfiguration
o Get-NetIPAddress
non è disponibile o non è adatto.
Esempio:
([System.Net.DNS]::GetHostAddresses($env:computername) | Where-Object { $_.AddressFamily -eq "InterNetwork" } | Select-Object IPAddressToString)[0].IPAddressToString
Nel frammento di codice fornito, utilizziamo [System.Net.DNS]::GetHostAddresses
per recuperare gli indirizzi IP associati al computer locale specificato da $env:computername
. Quindi filtriamo i risultati utilizzando Where-Object
per selezionare solo gli indirizzi IPv4 (AddressFamily -eq "InterNetwork"
).
Successivamente, utilizziamo Select-Object IPAddressToString
per estrarre l’indirizzo IP come rappresentazione stringa. Infine, [0].IPAddressToString
seleziona il primo indirizzo IP dal risultato e lo visualizza come stringa.
Output:
Usa Get-WmiObject
per ottenere l’indirizzo IPv4 in una variabile in PowerShell
Il cmdlet Get-WmiObject
ottiene le istanze delle classi della Windows Management Instrumentation (WMI) o informazioni sulle classi WMI disponibili.
La classe Win32_NetworkAdapterConfiguration
è una classe WMI che rappresenta le attributi e i comportamenti di un adattatore di rete.
Esempio:
(Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.DHCPEnabled -ne $null -and $_.DefaultIPGateway -ne $null }).IPAddress | Select-Object -First 1
Nel frammento di codice fornito, utilizziamo il Get-WmiObject
per interrogare la classe Win32_NetworkAdapterConfiguration
, recuperando i dettagli della configurazione dell’adattatore di rete. Applichiamo quindi un filtro Where-Object
per selezionare le configurazioni in cui è abilitato DHCP e un gateway predefinito è specificato.
Questo garantisce che recuperiamo gli indirizzi IP associati a connessioni di rete attive. Infine, utilizziamo Select-Object -First 1
per selezionare il primo indirizzo IP dai risultati.
Output:
Usa Test-Connection
per ottenere l’indirizzo IPv4 in una variabile in PowerShell
Il cmdlet Test-Connection
invia pacchetti di richiesta di eco ICMP, o ping, a uno o più computer e restituisce le risposte di eco. Può anche determinare se un computer specifico può essere contattato attraverso una rete IP.
Esempio:
(Test-Connection -ComputerName (hostname) -Count 1 | select -ExpandProperty IPv4Address).IPAddressToString
Nel frammento di codice fornito, utilizziamo Test-Connection
per pingare un host remoto specificato da (hostname)
e recuperare informazioni relative alla rete. Il parametro -Count 1
garantisce che venga inviato solo un singolo pacchetto di richiesta di eco al computer di destinazione, riducendo al minimo il traffico di rete.
Successivamente, utilizziamo Select-Object -ExpandProperty IPv4Address
per estrarre e visualizzare l’indirizzo IPv4 dell’host remoto dall’output.
Se hai adattatori virtuali, restituisce un indirizzo IPv4 degli adattatori virtuali (ad esempio, VPN, Hyper-V, Docker).
Output:
Puoi anche utilizzare questo comando, che restituisce lo stesso output di sopra.
(Test-Connection -ComputerName $env:computername -Count 1).IPv4Address.IPAddressToString
Nel frammento di codice fornito, utilizziamo Test-Connection
per pingare il sistema locale specificato da $env:computername
e recuperare informazioni relative alla rete. Specificando -Count 1
, inviamo una singola richiesta di ping al sistema locale, riducendo al minimo il traffico di rete.
Accediamo quindi alla proprietà IPv4Address
dell’oggetto di output e accediamo ulteriormente alla proprietà IPAddressToString
per recuperare l’indirizzo IPv4 come stringa.
Output:
Usa Get-CimInstance
per ottenere l’indirizzo IPv4 in una variabile in PowerShell
Il cmdlet Get-CimInstance
offre un approccio robusto per recuperare informazioni dal repository della Windows Management Instrumentation (WMI), consentendo agli amministratori di interrogare facilmente le configurazioni degli adattatori di rete. Targetizzando la classe CIM Win32_NetworkAdapterConfiguration
, questo metodo consente agli utenti di ottenere dettagli completi sulle impostazioni di rete, inclusi indirizzi IP, maschere di sottorete, gateway predefiniti e altro.
Esempio:
(Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $null }).IPAddress[0]
Nel frammento di codice fornito, utilizziamo Get-CimInstance
per interrogare la classe CIM Win32_NetworkAdapterConfiguration
, recuperando informazioni sulle configurazioni degli adattatori di rete. Il cmdlet Where-Object
filtra i risultati per selezionare configurazioni in cui la proprietà IPAddress
non è nulla, assicurando che vengano restituiti solo le configurazioni degli adattatori di rete con indirizzi IP assegnati.
Accedendo all’indice [0]
, selezioniamo il primo indirizzo IP dal set di risultati, che può essere utile quando si hanno più adattatori di rete o indirizzi. Questo approccio fornisce agli amministratori un modo conciso per recuperare l’indirizzo IP principale associato al sistema, facilitando la gestione della rete e le attività di troubleshooting.
Output:
Conclusione
In questo articolo, abbiamo esplorato vari metodi per recuperare l’indirizzo IPv4 in PowerShell, sfruttando diversi cmdlet e classi disponibili nell’ecosistema PowerShell. Iniziando con Get-NetIPAddress
, abbiamo imparato come recuperare informazioni sugli indirizzi IP con opzioni di filtraggio specifiche, seguito da Get-NetIPConfiguration
, che fornisce dati completi sulla configurazione IP sui sistemi Windows.
Poi abbiamo esplorato l’uso della classe Dns
per scenari in cui l’accesso diretto ai cmdlet non è disponibile. Inoltre, abbiamo esaminato l’uso di Get-WmiObject
per interrogare le configurazioni degli adattatori di rete tramite WMI e Test-Connection
per pingare host remoti e raccogliere dettagli sugli indirizzi IP.
Infine, abbiamo approfondito l’utilizzo di Get-CimInstance
per recuperare in modo efficiente le configurazioni degli adattatori di rete dal repository WMI. Ciascun metodo offre vantaggi unici, rispondendo a diverse esigenze e scenari nelle attività di amministrazione e troubleshooting della rete.