Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Проверить какой DHCP области (ScopeId) принадлежит IP адрес?

Ответить
Настройки темы
PowerShell - Проверить какой DHCP области (ScopeId) принадлежит IP адрес?

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я сначала использовал функцию с таким алгоритмом:
Код: Выделить весь код
$IPAddress="10.9.9.200"
$IPAddressArray=$IPAddress -split '\W'
$i=$IPAddressArray.Length
While ($i -gt 0)
{
    $i--
    $IPAddressArray[$i]=0
    $Subnet=$IPAddressArray -join "."
    if (Get-DhcpServerv4Scope -ScopeId $Subnet -ErrorAction SilentlyContinue) { break }
}
if ($i -gt 0)  { Write-Host " Scope $Subnet exist" }
else { Write-Host " Scope not exist " }
Но работает некорректно. Причислил IP "10.9.9.200" к области 10.0.0.0/24,
в которой он и близко не лежит.

Отправлено: 03:18, 12-10-2016

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
function IsIpAddressInRange {
param(
        [string] $ipAddress,
        [string] $fromAddress,
        [string] $toAddress
    )

    $ip = [system.net.ipaddress]::Parse($ipAddress).GetAddressBytes()
    [array]::Reverse($ip)
    $ip = [system.BitConverter]::ToUInt32($ip, 0)

    $from = [system.net.ipaddress]::Parse($fromAddress).GetAddressBytes()
    [array]::Reverse($from)
    $from = [system.BitConverter]::ToUInt32($from, 0)

    $to = [system.net.ipaddress]::Parse($toAddress).GetAddressBytes()
    [array]::Reverse($to)
    $to = [system.BitConverter]::ToUInt32($to, 0)

    $from -le $ip -and $ip -le $to
}

$IPAddress="10.9.9.200"
Get-DhcpServerv4Scope | Where {IsIpAddressInRange $IPAddress $_.StartRange $_.EndRange}
Если нет областей больше /24,то можно:
Код: Выделить весь код
Get-DhcpServerv4Scope -ScopeId ("10.9.9.200" -replace "\d+$","0")
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:04, 12-10-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Очень просто, как и должно быть у профи.
Лично я разбираясь с этим кодом потратил несколько часов
и перелистал пару книжек.
Спасибо!

Отправлено: 12:28, 12-10-2016 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Проверить какой DHCP области (ScopeId) принадлежит IP адрес?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - Не получает IP Адрес (DHCP) через мост из репитеров. kairden Сетевое оборудование 0 24-08-2015 19:19
Cisco - [решено] Сбивается ip адрес (получаемый по DHCP) wale Сетевое оборудование 2 15-01-2013 19:20
Proxy/NAT - [решено] Подменить свой ip адрес на другой ip адрес (выдать свою организацию за другую) masyaka Сетевые технологии 5 25-03-2011 08:42
Wireless - Компьютер не может взять IP-адрес у DHCP lasar Сетевое оборудование 1 13-08-2008 16:29
Разное - [решено] не могу получить ip адрес от dhcp slaine Microsoft Windows 2000/XP 6 28-12-2007 22:48




 
Переход