繁体   English   中英

在Powershell中更改IP地址

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM