Public/Test-IsValidIPAddress.ps1

function Test-IsValidIPAddress
{
<#
    .SYNOPSIS
        Test IP and validate
     
    .DESCRIPTION
        This function uses the IPAddress class to verify the specified IP address is
        valid per the RFC.
     
    .PARAMETER IP
        IP address to be tested.
     
    .EXAMPLE
        PS C:\> Test-IsValidIPAddress -IP 10.255.1.1
     
    .NOTES
        THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND.
        THE ENTIRE RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS
        CODE REMAINS WITH THE USER.
#>

    
    [CmdletBinding()]
    [OutputType([boolean])]
    param
    (
        [Parameter(Mandatory = $true)]
        [String]$IP
    )

    begin
    {
    }
    process
    {
        [System.Net.IPAddress]$IPAddressObject = $null
        if ([System.Net.IPAddress]::TryParse($IP, [ref]$IPAddressObject) -and $IP -eq $IPAddressObject.tostring())
        {
            $true
        }
        else
        {
            $false
        }
    }
    end
    {
    }

}