首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell v3,使用Find-IpamFreeAddress

Powershell v3,使用Find-IpamFreeAddress
EN

Stack Overflow用户
提问于 2013-11-11 20:04:21
回答 2查看 464关注 0票数 1

我使用这个命令行从IPAM中搜索空闲的IP地址,

-StartIPAddress 143.219.186.1 -EndIPAddress 143.219.187.254

此命令只提供未在IPAM IP目录中列出的可用IP。我有一个名为"IP地址状态“的列,其值为空闲、赋值、保留或提交。我只想在“免费”的基础上从IPAM中找到免费的IP地址。

有人知道什么命令可以只搜索“免费”地址吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-14 14:11:11

我为特定列"Free“找到了一个很长的编码答案,

代码语言:javascript
复制
clear-host

Function Get-FreeAddress
{  #Example call:
     #Get-FreeAddress -Env:"Prod" -Container:"H07" -NumIPs:3 -GiveInfo:$false
    PARAM(
         [Parameter(Mandatory=$true,ValueFromPipeline=$true,HelpMessage="Environment info (Prod or NonProd)")]
         [ValidateNotNullOrEmpty()]
            [System.String]$Env,
         [Parameter(Mandatory=$false,HelpMessage="Container Info (ie. H01, H02, etc,,")]
         [ValidateNotNullOrEmpty()]
            [System.String]$Container,
         [Parameter(Mandatory=$false,HelpMessage="IP Count to return")]
         [ValidateNotNullOrEmpty()]
            [Int]$NumIPs,
         [switch]$GiveInfo = $False
    )
  Begin {
    If ($NumIPs -eq "" -or $NumIPs -eq $null) {$NumIPs = 1}
        #Nothing Necessary to process
    } #Begin

  Process {            

            $cnt = 1
            $IPOut = @()
            $Check = "Env=$($Env);*$($Container)*"
            $Ranges = Get-IpamRange -AddressFamily IPv4 | Where{$_.customconfiguration -like $check} | Sort Customconfiguration

            :RangeLoop Foreach ($Rng in $Ranges)
            {
                if($GiveInfo){Write-Host "Range: "$Rng.networkid}
                $ipaddinfo = Get-Ipamsubnet -networkid $Rng.networkid | get-ipamaddress | Where{$_.IPAddressState -eq 'Free'}
                :IPLoop foreach ($ipinfo in $ipaddinfo)
                {
                    If ($cnt -le $NumIPs)
                    {
                        if($GiveInfo){Write-Host "`t$($cnt):" $ipinfo.Address " : " $ipinfo.IPAddressState}
                        $cnt = $cnt + 1
                        $IPOut += $ipinfo.Address
                    }
                    Else
                    {Break RangeLoop}
                }
            }
            Return $IPOut
          }
}

Get-FreeAddress -Env:"Prod" -Container:"H07" -NumIPs:2 -GiveInfo:$false
票数 0
EN

Stack Overflow用户

发布于 2013-11-13 14:14:22

在黑暗中开枪,但这个呢:

-StartIPAddress 143.219.186.1 -EndIPAddress 143.219.187.254 -EndIPAddress 143.219.187.254查找-IpamFreeAddress_ Where-Object {$_."IP地址状态“-eq "Free"}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19914891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档