0 Pluspunkte 0 Minuspunkte

Wie kann ich die Subnetzmaske aus dem Netzwerkprefix einer IP Adresse in Powershell berechnen?

$addresses = Get-NetIPAddress 
$addresses | sort IPAddress | %{ "$($_.IPAddress)/$($_.PrefixLength)`t$($_.InterfaceAlias)" }
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Zuerst erstellst du eine binäre Maske mit 32 Bit für IPv4.

$binaryMask = ('1' * $_.PrefixLength).PadRight(32, '0')

Dann teilst du die Maske in 8-Bit Blöcke

$octets = $binaryMask -split '(.{8})' | Where-Object { $_ -ne '' }

und konvertierst jeden einzelnen Block in seinen Dezimalwert.

$result = ($octets | ForEach-Object { [convert]::ToInt32($_, 2) }) -join '.'
von (974 Punkte)