Изменение IP-адреса в Powershell - PullRequest
0 голосов
/ 04 декабря 2011

Я пытаюсь получить 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-адрес находится в этом диапазоне, поэтому я просто использовал равно и не равно. Излишне говорить, что это явно не сработало.

1 Ответ

1 голос
/ 04 декабря 2011

Попробуйте, измените, чтобы соответствовать вашим низким и высоким.

$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
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...