如何解决我可以在Azure子网中找到可用IP地址的数量吗?
我正在尝试找到一种列出Azure vNet中可用IP地址数量的方法。 我知道这在GUI中可用,如下所示:
问题是,我们在Powershell Az模块中可以有相同的信息吗?
谢谢!
爱丹
解决方法
从我所见,没有直接方法可以从子网地址范围中获取可用IP地址的数量。
但是,使用以下公式很容易:
2 ^ (32 - netmask length) - number of reserved Azure IPs - number of already occupied IPs
因此,如果您有一个子网地址范围,例如10.1.0.0/24
,而一个IP已经被另一台设备占用,则计算得出:
(2 ^ (32 - 24)) - 5 - 1 => (2 ^ 8) - 6 => 256 - 6 => 250
此外,使用PowerShell,我们可以将这些步骤放入这样的代码中:
$resourceGroupName = "myResourceGroup"
$virtualNetworkName = "myResourceGroup-vnet"
$subnetName = "default"
$virtualNetwork = Get-AzVirtualNetwork `
-Name $virtualNetworkName `
-ResourceGroupName $resourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $virtualNetwork `
-Name $subnetName
$subnetMask = $subnet.AddressPrefix.Split("/")[1]
$netmaskLength = [Math]::Pow(2,32 - [int]$subnetMask)
$availableIpAddresses = $netmaskLength - 5 - $subnet.IpConfigurations.Count
$availableIpAddresses
上述Az模块Cmdlet的参考:
此外,请查看MSDN,以了解Azure为什么专门保留5个IP地址。
,我遇到了这个solution
,
$TableProperties = @(
@{Name="VNET" ; Expression={$VNET.Name}}
"Name"
"AddressPrefix"
@{Name="IPsConfigured" ; Expression={$SubnetConfigured.Count}}
@{Name="IPsLeft" ; Expression={$AvailableAddresses - $SubnetConfigured.Count}}
)
$Subnet |
Select-Object $TableProperties |
Format-Table -Autosize
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。