BGInfo visualizzazione degli indirizzi IPv4

BGInfo è un tool scritto da Mark Russinovich che consente di visualizzare sullo sfondo del desktop svariate informazioni.

Nativamente BGInfo ha il field IP Address che consente la visualizzazione degli indirizzi IPv4, ma il risultato non è ottimale in quanto vengono incluse anche le connessioni di rete che non hanno un indirizzo IPv4 assegnato con risultato che vengono visualizzati degli indirizzi “(none)” che rendono confusionario l’output.

E’ possibile provare a ottenere una visualizzazione degli indirizzi IPv4 più facilmente interpretabile costruendo un custom field, di seguito vedremo alcuni approcci.

Approccio 1: Query WMI basata sulla classe Win32_NetworkAdapterConfiguration

Tramite la classe WMI Win32_NetworkAdapterConfiguration è possibile ottenere gli indirizzi IP configurati sulle schede di rete abilitate utilizzando ad esempio la seguente query:

SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE

Questo approccio ha il vantaggio di restituire solo gli indirizzi IPv4 sulle schede di rete attive, ma restituisce anche gli indirizzi IPv6 che se non sono d’interesse rendono l’output più difficile da comprendere.

Approccio 2: Query WMI basata sulla classe Win32_IP4RouteTable

Tramite la classe WMI Win32_IP4RouteTable è possibile ottenere gli indirizzi IP utilizzati dal sistema utilizzando una query come la seguente:

SELECT Destination FROM Win32_IP4RouteTable WHERE NOT (Destination LIKE ‘%.0’ OR Destination LIKE ‘%.255’)

Questa query potrebbe essere essere impostata per non visualizzare l’indirizzo di loopback, ma in  questo caso la lunghezza della query diventerebbe troppo lunga e farebbe scattare un’issue di BGInfo che ha problemi quando deve leggere dal file di configurazione dei Custom Field con query WMI oltre un certo numero di caratteri.

Approccio 3: Utilizzo di PowerShell in BGInfo

Nativamente BGInfo può usare Custom Field che puntano a VB Script file, ma l’utilizzo di VBS non è più raccomandata tenuto conto che nella versione 25309 di Windows 11 è stata introdotta la possibilità di rimuovere VBScript dal sistema con la seguente indicazione:

This is a legacy Scripting engine component, Microsoft does not recommend using this component unless and until it is really required. Use this component at your own risk, this might contain security vulnerabilities.

Sebbene nativamente BGInfo non permetta di usare Custom Field che puntano a script PowerShell, è comunque possibile ricavare le informazioni sugli indirizzi IPv4 assegnati alle schede di rete tramite PowerShell generando un output testuale, ad esempio tramite uno script con i seguenti comandi:

Get-NetIPConfiguration | Where-Object {$_.NetAdapter.status -eq “Up”} | Select InterfaceAlias, @{Name=”IPv4″;Expression={$_.Ipv4address.ipaddress}} | Format-Table -HideTableHeaders | Out-File IPv4.txt -NoNewline

Quindi è possibile creare in BGInfo un Custom Field che punta al file di testo generato dallo script PowerShell.