Come ottenere l'indirizzo IPv4 in PowerShell

  1. Usa Get-NetIPAddress per ottenere l’indirizzo IPv4 in una variabile in PowerShell
  2. Usa Get-NetIPConfiguration per ottenere l’indirizzo IPv4 in una variabile in PowerShell
  3. Usa Dns class per ottenere l’indirizzo IPv4 in una variabile in PowerShell
  4. Usa Get-WmiObject per ottenere l’indirizzo IPv4 in una variabile in PowerShell
  5. Usa Test-Connection per ottenere l’indirizzo IPv4 in una variabile in PowerShell
  6. Usa Get-CimInstance per ottenere l’indirizzo IPv4 in una variabile in PowerShell
  7. Conclusione
Come ottenere l'indirizzo IPv4 in PowerShell

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:

powershell ottieni indirizzo ip - output 1

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:

powershell ottieni indirizzo ip - uscita 2

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:

powershell ottieni indirizzo ip - output 3

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:

powershell ottieni indirizzo ip - output 4

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:

powershell ottieni indirizzo ip - output 5

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:

powershell ottieni indirizzo ip - output 6

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:

powershell ottieni indirizzo ip - output 7

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:

powershell ottieni indirizzo ip - output 8

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.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
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