2017-02-18 18 views
0

Я ищу количество доступных IP-адресов в каждой подсети в azure vnet , поэтому я пытаюсь выполнить сценарий ниже, но у меня нет возможности получить доступ к IP.Количество доступных ips в подсети azure

$nic = Get-AzureRmVirtualNetwork -Name TST-VNET1 -ResourceGroupName TST-RG1 
$nic.AddressSpace.AddressPrefixes 
$subnets= $nic.Subnets 
$subnets 
foreach($subnet in $subnets) 
{ 
$subnet.Name 
$subnet.IpConfigurations.Count 
$subnet.AddressPrefix 
} 

Использование $subnet.IpConfigurations.Count получает используемые IP-адреса. $subnet.AddressPrefix получает cidr.

Я ищу здесь доступные или назначенные IP-адреса хоста в каждом пуле подсети.

+0

отредактированных свой вопрос и внедренное изображение должным образом. Теперь, пожалуйста, переместите этот комментарий в свой вопрос в качестве редактирования. Это не относится к комментарию (и это довольно непроницаемо, потому что оно неформатировано). –

+0

Спасибо за ваше предложение, но я не настоящий кодер, поэтому эта ошибка сделана. –

+0

HI Jason за ваш ответ, но это не я ищу, я ищу доступный ip в каждой подсети, как вы упоминаете в снимке экрана. –

ответ

0

Мы можем использовать Azure портала, чтобы получить число доступных IP-адреса: enter image description here

PowerShell скрипт:

$nic = Get-AzureRmVirtualNetwork -Name "jason" -ResourceGroupName "vnet" 
$nic.AddressSpace.AddressPrefixes 
$subnets = $nic.Subnets 
$subnets 
foreach($subnet in $subnets) 
{ 
$subnet.Name 
$subnet.IpConfigurations.Count 
$subnet.AddressPrefix 
} 

$splitAddress = $subnet.AddressPrefix.Split("/") 
$output = [math]::Pow(2, (32 - $splitAddress[1])) - 5 - $subnet.IpConfigurations.Count 
+1

$ output.'Ip in Use '= $ subnet.IpConfigurations.Count $ splitAddress = $ подсеть.AddressPrefix.Split ("/") $ output.'Free IP in Subnet' = [math] :: Pow (2, (32 - $ splitAddress [1])) - 5 - $ subnet.IpConfigurations.Count Используя вышеприведенный скрипт, я получаю результат ... –

+0

@VivekMishra да, ваш скрипт верен, он получит количество доступных айпи адрес. –