Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make a script that adds a network route?

Scenario

SO Windows 7

I need to connect to remote host via cisco VPN. Sometimes the host destination network is the same of local network. Example (Partial output of ipconfig command):

Ethernet adapter Cisco Vpn Adapter:
   IPv4 Address. . . . . . . . . . . : 192.168.100.12
   Subnet Mask . . . . . . . . . . . : 255.255.255.0

Wireless LAN adapter Wireless Network Connection:
   IPv4 Address. . . . . . . . . . . : 192.168.1.74
   Subnet Mask . . . . . . . . . . . : 255.255.255.0

I need to connect to host 192.168.1.11 on the remote network via Vpn Then I need to add new route (in this configuration all traffic to 192.168.1.xxx are route to local network) The output of route print begining by:

Interface List
 17...00 05 9a 3c 78 00 ......Cisco Systems VPN Adapter
 12...00 16 44 ea 74 58 ......Dell Wireless 1395 WLAN Mini-Card

And the command is:
route add 192.168.1.11 mask 255.255.255.255 192.168.100.12 metric 1 if 17

Problem:
The Ip on Cisco adapter is not static, i can't route add with modifier -p (permanent) When disconected and reconnect I need look for the NewIp and add the correct route:
route add 192.168.1.11 mask 255.255.255.255 «NewIP» metric 1 if 17
For me its easy (but boring) write all this commmands every time:

ipconfig  etc
route print etc
route add etc

I need a bat or PowerShell script to add the correct route. The scrip look for the IP on the Cisco adapter and run the command route add with IP gateway founded.

Thanks

like image 809
renegm Avatar asked Jul 20 '10 19:07

renegm


1 Answers

I tried renegm's answer, and the Index property gives the wrong value for me. This worked for me though (Juniper VPN here, but the same problem) - note InterfaceIndex instead of Index:

$adapter=Get-WmiObject Win32_NetworkAdapterConfiguration|
    Where-Object { $_.Description -match "Juniper Network Connect Virtual Adapter"}
$Gateway=$adapter.IPaddress[0] 
$if=$adapter.InterfaceIndex

route add 192.168.1.3 mask 255.255.255.255 $Gateway metric 1 if $if
like image 66
AnotherHowie Avatar answered Oct 20 '22 02:10

AnotherHowie