Finding default gateway in an openvpn environment in windows

Posted on

QUESTION :

I need to find the default gateway in a openvpn scenario where the route output looks like that:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0       10.49.73.1      10.49.73.24     10
          0.0.0.0        128.0.0.0         10.8.0.1         10.8.0.2     30

So I googled around a bit and a found this script here:

@For /f "tokens=3" %%* in (
   'route.exe print ^|findstr "<0.0.0.0>"'
   ) Do @Set "DefaultGateway=%%*"

echo %DefaultGateway%

This works, but matches both lines in the route output.

But I need to find this line:

0.0.0.0          0.0.0.0       10.49.73.1      10.49.73.24     10

So I tried to modify the findstr parameter like this:

findstr "<0.0.0.0>.<0.0.0.0>"

in the expectation that ‘.’ will match for the tab between the columns.
But it doesn’t. It will still set DefaultGateway to 10.8.0.1

I couldn’t find a clue in MS documentation either.
Maybe someone knows the right expression?
Thanks a lot.

ANSWER :

Try this:

For /f "tokens=3" %%* in (
   'route print ^|findstr "<0.0.0.0.*0.0.0.0>"'
   ) Do @Set "DefaultGateway=%%*"

echo %DefaultGateway%

And you can check findstr /? for more informations.

Leave a Reply

Your email address will not be published.