PowerShell - расчет идентификатора сети с использованием IP-адреса и маски Su bnet - PullRequest
0 голосов
/ 07 марта 2020

Я новичок в PowerShell. Я пишу скрипт для вычисления идентификатора сети и широковещательного адреса с использованием IP-адреса и маски Su bnet. Я борюсь с логическим и. Мой скрипт запрашивает у пользователя IP и Su bnet, а затем преобразует приглашение в двоичный файл. Затем я использую для l oop, чтобы выполнить логическое и. Однако '.' является частью ввода в for l oop, поэтому операция не работает. Могу ли я удалить «.» с целью операции? Часть моего кода вставлена ​​ниже. Я уверен, что есть простое решение, но я новичок, поэтому любая помощь приветствуется. Спасибо!

$input = Read-Host "Would you like to calculate the Network Address? (Y for yes, N for no)"
if ($input -eq 'Y')
    {
        $ipAddress = Read-Host "Please enter your IP Address"
        $ipBin = $ipAddress -split '\.'| ForEach-Object {[System.Convert]::ToString($_,2).PadLeft(8, '0')}
        $ipBinJoin = $ipBin -join '.'
        $subnetMask = Read-Host "Please enter your Subnet Mask"
        $subnetBin= $subnetMask -split '\'| ForEach-object {[System.Convert]::ToString($_,2).PadLeft(8, '0')}
        $subnetBinJoin = $subnetBin -join '.'
        echo $ipAddress, $ipBinJoin
        echo $subnetMask, $subnetBinJoin


        for ($i = 0; $i -lt 32; $i++)
           {
                $networkIDBin = $ipBinJoin.Substring($i,1) -band $subnetBinJoin.Substring($i,1)
           }

1 Ответ

0 голосов
/ 07 марта 2020

Мы можем рассчитать идентификатор сети, используя адрес IPV4 и его маску su bnet. Мы можем использовать -band (Bitwise And) и полезный. net тип IpAddress здесь.

$ip = [ipaddress]$ipaddress
$subnet = [ipaddress]$subnetmask
$netid = [ipaddress]($ip.address -band $subnet.address)
write-host "Network id: $($netid.ipaddresstostring)"

Примечание: регулярное выражение для проверки IP-адреса можно найти по адресу Проверка адресов IPv4 с помощью regexp

Рассчитать адрес Brodcast https://community.idera.com/database-tools/powershell/powertips/b/tips/posts/calculate-broadcast-address

Первый адрес - это адрес su bnet, а второй - адрес Brodcast.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...