none
PowerShell에서 IPRange 함수 RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “PowerShell에서 IP Range 함수에 대한 답변을 드리겠습니다.

     

     

    Step 1 : System.Net.IPAddress

     

    PowerShell에서 문자열로 입력받은 IPAddress .NET Framework 에서 사용할 수 있게 변환을 해야 합니다.

     

    아래의 Script Ipaddress에 연산을 할수 있게 변환을 합니다.

     

    $IPaddress = ([System.Net.IPAddress]"192.168.20.1").GetAddressBytes() 

    [Array]::Reverse($IPaddress) 

    $IPaddress = ([System.Net.IPAddress]($IPaddress -join '.')).Address

     

     

    Step 2 : Script

     

    아래의 함수는 시작 IP, 종료 IP를 인자로 받아 그 사이의 IP Address를 반환을 합니다.

     

    function Get-IPRange

    {

        param(

            [Parameter(Mandatory=$true)]

            $startIP,

            [Parameter(Mandatory=$true)]

            $endIP       

        )

       $startIP = ([System.Net.IPAddress]$startIP).GetAddressBytes() 

       [Array]::Reverse($startIP) 

       $startIP = ([System.Net.IPAddress]($startIP -join '.')).Address 

      

       $endIP = ([System.Net.IPAddress]$endIP).GetAddressBytes() 

       [Array]::Reverse($endIP) 

       $endIP = ([System.Net.IPAddress]($endIP -join '.')).Address  

       

       for ($x = $startIP; $x -le $endIP; $x++) { 

          $ip = ([System.Net.IPAddress]$x).GetAddressBytes() 

          [Array]::Reverse($ip) 

          $ip -join '.'    

        }

    }

     

     

    Get-IPRange "192.168.20.1" "192.168.20.200"

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 편집됨 SangHyuk KimModerator 2011년 12월 7일 수요일 오전 9:24
    • 답변으로 표시됨 김도남 2011년 12월 20일 화요일 오전 12:18
    2011년 12월 7일 수요일 오전 9:23
    중재자