lib/core/tools/Get-IcingaNetworkRoute.psm1

<#
.SYNOPSIS
   Fetch the used interface for our Windows System
.DESCRIPTION
   Newer Windows systems provide a Cmdlet 'Get-NetRoute' for fetching the
   network route configurations. Older systems however do not provide this
   and to ensure some sort of backwards compatibility, we will have a look
   on our route configuration and return the first valid interface found
.FUNCTIONALITY
   This Cmdlet will return first valid IP for our interface
.EXAMPLE
   PS>Get-IcingaNetworkRoute
.OUTPUTS
   System.Array
.LINK
   https://github.com/Icinga/icinga-powershell-framework
.NOTES
#>


function Get-IcingaNetworkRoute()
{
    $RouteConfig = (&route print | Where-Object {
        $_.TrimStart() -Like "0.0.0.0*";
    }).Split() | Where-Object {
        return $_;
    };

    $Interface   = @{
        'Destination' = $RouteConfig[0];
        'Netmask'     = $RouteConfig[1];
        'Gateway'     = $RouteConfig[2];
        'Interface'   = $RouteConfig[3];
        'Metric'      = $RouteConfig[4];
    }

    return $Interface;
}