[英]Changing an IP Address in Powershell
我正在尝试从计算机获取IP地址,然后检查该地址以查看其是否在一定范围内。 但是我真的不确定该怎么做。 我已经弄清楚了如何从计算机上获取IP地址,但是对照范围检查它又是另一回事了...
这是我到目前为止的内容:
Get-WMIObject win32_NetworkAdapterConfiguration | Where-Object { $_.IPEnabled -eq $true } | Foreach-Object { $_.IPAddress } | Foreach-Object { [IPAddress]$_ } | Where-Object { $_.AddressFamily -eq 'Internetwork' } | Foreach-Object { $_.IPAddressToString }
If ($_.IPAddressToString -eq 192.168.0.10 - 192.168.0.50)
{Write-host $_.IPAddressToString}
else ($_.IPAddressToString -ne 192.168.0.10 - 192.168.0.50)
{$_.IPAddressToString = 192.168.0.15}
第一行是我用来获取IP地址的内容。 我正在循环if语句,以便如果地址在范围内,那么除了输出地址外,它什么也不会做。 如果IP地址不在正确的范围内,我就对IP地址进行了其他声明。
我发现两者之间没有任何东西。 我不知道如何编写192.168.0.10-192.168.0.50的脚本。 我也找不到任何可以检查IP地址在该范围内的东西,因此我只使用了equal和not equal。 不用说,它显然没有用。
尝试此操作,更改以适合您的高低。
$ipLow = [IPAddress] "192.168.9.10"
$ipHigh = [IPAddress] "192.168.9.60"
[Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() | ? {$_.OperationalStatus -eq "Up"} | % {
$addrs = $_.GetIPProperties().UnicastAddresses
if ($addrs) {
foreach ($addr in $addrs) {
if ($addr.Address.AddressFamily -eq 'InterNetwork') {
if ($addr.Address.Address -ge $ipLow.Address -and $addr.Address.Address -le $ipHigh.Address) {
$addr.Address
}
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.