我正在编写一个脚本,用户在其中输入网络地址和 IP 地址,以便创建静态路由CLI
模板。
-
对于IP地址,我似乎无法获得
[ipaddress]
选项来工作,这似乎是最好的选项。对于网络地址,我怎样才能做到这一点? 我已经通读了另一篇使用读取主机选项的文章,但我不确定如何将其与此联系起来。 -
对于网络地址,我唯一的选择是正则表达式,因为我看到的那些选项似乎有缺陷。
$fwA = read-host "Enter hostA" $fwB= read-Host "Enter hostB"
我想验证这是 IP 地址(不需要/32(还是有效的网络地址。
$Net1 = read-host "Enter Network x.x.x.x/x"
我想验证这是一个 IP 地址
$GW1= read-host "Enter Next Hop x.x.x.x"
$route1 += @("$fwA","$fwB","$Net1","$GW1")
write-host ""
Write-Host "Route 1 : "$route1[0] "/" $route1[1] "=" $route1[2] $route1[3]
Write-Host "set static route" $route1[2] $route1[3] "on" -ForegroundColor Yellow
对于 IP 地址,我使用完全不同的方法:
通过将工作站/服务器名称作为参数传递给输入类型 System.Net.DNS 强制转换
例如,如果主机的 FQDN 名称为 ABCTest-DEV,则以下脚本将显示提供的 ABCTest-Dev 的 IP 地址,即主机在域中已有可用的 DNS 记录。
$ipaddr = [System.Net.Dns]::GetHostAddresses('ABCTest-Dev')|Where AddressFamily -EQ 'InterNetwork'
Write-Host 'This IPV4 Address of the Host is: '$ipaddr