NetDiagTools.psm1

function Get-IPConfiguration {
    [CmdletBinding()]
    param ()

    Get-NetIPAddress | Where-Object { $_.AddressFamily -eq 'IPv4' } |
        Select-Object InterfaceAlias, IPAddress, PrefixLength
}

function Test-NetworkLatency {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$false)]
        [string]$Target = "$env:COMPUTERNAME",

        [int]$Count = 4
    )

    Test-Connection -ComputerName $Target -Count $Count |
        Select-Object Address, ResponseTime, StatusCode
}

function Get-OpenPorts {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$false)]
        [string]$ComputerName = "$env:COMPUTERNAME",

        [int[]]$Ports = @(22, 80, 443, 3389)
    )

    $results = @()
    foreach ($port in $Ports) {
        $test = Test-NetConnection -ComputerName $ComputerName -Port $port
        $results += [PSCustomObject]@{
            ComputerName = $ComputerName
            Port         = $port
            TcpTestSucceeded = $test.TcpTestSucceeded
        }
    }
    return $results
}