我正在编写一个脚本,用户可以输入网络地址和IP地址,以便创建静态路由CLI
模板。
对于IP地址,我似乎无法使用[ipaddress]
选项,这似乎是最好的选择。对于网络地址,我该如何使其工作?我通过使用read-host选项阅读了另一篇文章,但我不确定如何将其与此相关联。
对于网络地址,我唯一的选择是正则表达式,因为我看到的这些选项似乎存在缺陷。
$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
答案 0 :(得分:0)
对于IP地址,我使用完全不同的方法:
通过将工作站/服务器名称作为参数传递给输入类型System.Net.DNS cast
例如,如果主机的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