Checking the IP routing table in Windows shows which gateway and network interface handle traffic for each destination network. When multiple adapters, VPN clients, or virtual switches exist, the routing table is often the difference between a working connection and traffic silently taking the wrong path.

The Windows TCP/IP stack maintains separate routing tables for IPv4 and IPv6. Each route specifies a destination prefix (network + mask/prefix length), a next hop (gateway) or On-link delivery, an interface, and a metric that influences route selection. Windows generally chooses the most specific match first (longest prefix), then prefers the lowest metric among equally specific routes.

Route entries can change automatically due to DHCP renewals, Wi-Fi roaming, VPN connections, or virtualization features such as Hyper-V and WSL. Viewing routes is safe, but changing routes (route add/route delete, New-NetRoute, Remove-NetRoute) can immediately break connectivity if a default route or interface route is altered.

Methods to check IP routing table in Windows:

Using the Command Prompt:

  1. Open Command Prompt.
  2. Display the IPv4 routing table.
    C:\> route print -4
    ===========================================================================
    Interface List
     15...3c 52 82 aa bb cc ...... Ethernet
     11...f0 9f c2 12 34 56 ...... Wi-Fi
      1........................... Software Loopback Interface 1
    ===========================================================================
    IPv4 Route Table
    ===========================================================================
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0     192.168.1.1   192.168.1.50     25
            127.0.0.0        255.0.0.0       On-link        127.0.0.1    331
         192.168.1.0    255.255.255.0       On-link    192.168.1.50    281
       192.168.1.50  255.255.255.255       On-link    192.168.1.50    281
      192.168.1.255  255.255.255.255       On-link    192.168.1.50    281
    ===========================================================================
    Persistent Routes:
      None

    0.0.0.0 with netmask 0.0.0.0 is the default IPv4 route used when no more specific route matches.

  3. Display the IPv6 routing table when troubleshooting IPv6 paths.
    C:\> route print -6
    ===========================================================================
    Interface List
     15...3c 52 82 aa bb cc ...... Ethernet
     11...f0 9f c2 12 34 56 ...... Wi-Fi
      1........................... Software Loopback Interface 1
    ===========================================================================
    IPv6 Route Table
    ===========================================================================
    Active Routes:
     If Metric Network Destination                             Gateway
     15     25 ::/0                                           fe80::1
      1    331 ::1/128                                        On-link
     15    281 2001:db8:1:1::/64                               On-link
     15    281 2001:db8:1:1::50/128                            On-link
     15    281 fe80::/64                                      On-link
    ===========================================================================
    Persistent Routes:
      None

    ::/0 is the default IPv6 route, and fe80::1 is a common link-local next hop on the local segment.

  4. Inspect the Active Routes and Persistent Routes sections to confirm the expected gateway, interface, and metrics.
  5. Filter the output by specifying a destination network.
    C:\> route print 192.168.1.0
    ===========================================================================
    IPv4 Route Table
    ===========================================================================
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
         192.168.1.0    255.255.255.0       On-link    192.168.1.50    281
       192.168.1.50  255.255.255.255       On-link    192.168.1.50    281
      192.168.1.255  255.255.255.255       On-link    192.168.1.50    281

    Use route print -4 and route print -6 to limit output to IPv4 or IPv6 when the full table is noisy.

  6. Close Command Prompt.

Using Windows PowerShell:

The NetTCPIP cmdlets return route entries as objects, which is useful for filtering by prefix, address family, and metric.

  1. Open Windows PowerShell.
  2. List all current routes.
    PS C:\> Get-NetRoute
    
    ifIndex DestinationPrefix NextHop        RouteMetric PolicyStore
    ------ ----------------- -------        ----------- -----------
    15     0.0.0.0/0         192.168.1.1    25          ActiveStore
    15     192.168.1.0/24    0.0.0.0        281         ActiveStore
    1      127.0.0.0/8       0.0.0.0        331         ActiveStore
    15     2001:db8:1:1::/64 0.0.0.0        281         ActiveStore
    15     ::/0              fe80::1        25          ActiveStore
    ##### snipped #####

    ifIndex maps to the interface index, and RouteMetric is used as a tiebreaker when multiple routes have the same destination specificity.

  3. Filter routes by destination prefix.
    PS C:\> Get-NetRoute -DestinationPrefix 192.168.1.0/24
    
    ifIndex DestinationPrefix NextHop RouteMetric PolicyStore
    ------ ----------------- ------- ----------- -----------
    15     192.168.1.0/24    0.0.0.0 281         ActiveStore
  4. Display the default IPv4 route.
    PS C:\> Get-NetRoute -DestinationPrefix 0.0.0.0/0
    
    ifIndex DestinationPrefix NextHop      RouteMetric PolicyStore
    ------ ----------------- -------      ----------- -----------
    15     0.0.0.0/0         192.168.1.1  25          ActiveStore
  5. Display the default IPv6 route.
    PS C:\> Get-NetRoute -DestinationPrefix ::/0
    
    ifIndex DestinationPrefix NextHop   RouteMetric PolicyStore
    ------ ----------------- -------   ----------- -----------
    15     ::/0              fe80::1   25          ActiveStore
  6. Exit PowerShell.