我有下面的powershell函数,我想从CIDR返回IP范围。
代码如下:
function ConvertFrom-CidrNotation {
param(
[Parameter(Mandatory=$true)]
[string]$cidr
)
$parts = $cidr -split "/"
$ip = $parts[0]
$prefix = $parts[1]
$subnet = [math]::pow(2, (32 - $prefix))
$startIP = ([System.Net.IPAddress]::Parse($ip).GetAddressBytes() | ForEach-Object{ $_ -bor 0 }) -join "."
# Correct the end IP calculation
$ipBytes = [System.Net.IPAddress]::Parse($ip).GetAddressBytes()
$subnetBytes = [BitConverter]::GetBytes([int]$subnet)
$endIPBytes = for ($i = 0; $i -lt 4; $i++) { $ipBytes[$i] -bor $subnetBytes[$i] }
$endIP = $endIPBytes -join "."
return "$startIP - $endIP"
}
字符串
你能告诉我为什么我会得到错误的结果吗?
1条答案
按热度按时间bmp9r5qi1#
使用以下命令获取起始地址
字符串