¿Cómo obtener la puerta de enlace para una ruta específica en la línea de comando en Windows?

¿Cómo obtener la puerta de enlace para una ruta específica en la línea de comando en Windows?

¿Hay alguna forma de imprimir la puerta de enlace para una ruta específica (no una interfaz) en Windows (en este caso, Win7)? Necesitaría agregar una ruta dinámicamente en un script _up de OpenVPN, pero como la puerta de enlace se asigna dinámicamente cuando se forma la conexión, no puedo escribirlo estáticamente.

También parece haber algunas variables de entorno (route_vpn_gateway?) disponibles para los scripts _up, pero no he logrado que funcionen.

Supongo que podré usar awk/grep de las herramientas de GnuWin y analizar la salida de las 'rutas', pero ¿quizás haya una manera más limpia/fácil?

Respuesta1

Puedes usar fácilmentepotencia Shell:

PS C:\Users\mmoor> $RouteTable = Get-WmiObject Win32_IP4RouteTable
PS C:\Users\mmoor> $RouteTable[0].Mask
0.0.0.0
PS C:\Users\mmoor> $RouteTable[0].Destination
0.0.0.0
PS C:\Users\mmoor> $RouteTable[0].NextHop
<Gateway Address>

Compare esto con la ejecución de ROUTE PRINT desde una línea de comando de Windows. Powershell es un lenguaje de secuencias de comandos detallado, por lo que puede actualizar fácilmente la secuencia de comandos de configuración del cliente openvpn. Supongo que esto es lo que está intentando hacer. También está orientado a objetos.

Haría algo de la siguiente manera:

1) Tome la tabla de enrutamiento de wmi (que se muestra arriba)

2) Cada entrada de la tabla de enrutamiento es una entrada en una matriz (de ahí el [0] después de la variable anterior)

3) Haga un foreach en la matriz hasta que encuentre la dirección IP que está buscando

4) Obtenga el miembro NextHop de la entrada RouteTable y guárdelo

5) Lea el archivo de configuración del cliente OpenVPN (el uso de get-content en powershell creará una matriz de cadenas del archivo)

6) Repita la matriz de cadenas hasta encontrar la cadena que se supone que debe reemplazar, luego reemplace la cadena y guarde el archivo.

Espero que esto te oriente en la dirección correcta.

información relacionada