如何制作添加网络路由的脚本?

Posted

技术标签:

【中文标题】如何制作添加网络路由的脚本?【英文标题】:How to make a script that adds a network route? 【发布时间】:2011-03-18 15:25:16 【问题描述】:

场景

所以 Windows 7

我需要通过 cisco *** 连接到远程主机。有时主机目标网络与本地网络相同。 示例(ipconfig 命令的部分输出):

以太网适配器 Cisco *** 适配器: IPv4 地址。 . . . . . . . . . . : 192.168.100.12 子网掩码 。 . . . . . . . . . . : 255.255.255.0 无线 LAN 适配器 无线网络连接: IPv4 地址。 . . . . . . . . . . : 192.168.1.74 子网掩码 。 . . . . . . . . . . : 255.255.255.0

我需要通过 *** 连接到远程网络上的主机 192.168.1.11 然后我需要添加新路由(在此配置中,到 192.168.1.xxx 的所有流量都是到本地网络的路由) 路线打印的输出开始于:

接口列表
 17...00 05 9a 3c 78 00 ......思科系统 *** 适配器
 12...00 16 44 ea 74 58 ......戴尔无线 1395 WLAN 迷你卡

命令是:route add 192.168.1.11 mask 255.255.255.255 192.168.100.12 metric 1 if 17

问题: Cisco 适配器上的 Ip 不是静态的,我无法使用修饰符 -p(永久)添加路由 当断开连接并重新连接时,我需要查找 NewIp 并添加正确的路由:route add 192.168.1.11 mask 255.255.255.255 «NewIP» metric 1 if 17 对我来说,每次都很容易(但很无聊)编写所有这些命令:

ipconfig 等
路线打印等
路线添加等

我需要一个 bat 或 PowerShell 脚本来添加正确的路线。脚本在 Cisco 适配器上查找 IP 并运行命令 route add 并创建 IP 网关。

谢谢

【问题讨论】:

或许更适合ServerFault。 【参考方案1】:

我解决了。 (我是 PowerShell 的新手,但问题很简单)

$adapter=Get-WmiObject Win32_NetworkAdapterConfiguration| Where-Object $_.Description -match "Cisco Systems *** Adapter" $GateWay=$adapter.IP地址[0] $if=$adapter.Index route add 192.168.1.11 mask 255.255.255.255 $Gateway metric 1 if $if

【讨论】:

这个答案不正确。另一个Howie 是正确的。 $adapter.Index 值可能与 $adapter.InterfaceIndex 值不同,后者与运行 route print 输出的接口索引值一致,并且是 route add 命令所期望的。这意味着它可以通过简单的网络设置为您工作,但如果您有多个接口,这可能会将路由绑定到错误的接口。【参考方案2】:

我尝试了 renegm 的答案,但 Index 属性为我提供了错误的值。这对我有用(这里是 Juniper ***,但同样的问题) - 注意 InterfaceIndex 而不是 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

【讨论】:

命令应该是: route add 192.168.1.3 mask 255.255.255.255 $Gateway metric 1 IF $if【参考方案3】:

这是一个相当古老的讨论,但您可以在连接到 *** 后使用以下 PowerShell 命令创建路由:

Add-***ConnectionRoute -ConnectionName "You *** Name Here" -DestinationPrefix 10.0.0.0/8

它适用于 Windows 10。

【讨论】:

显然,即使您在连接到 *** 之前执行它,它也可以工作。执行一次,永远工作。

以上是关于如何制作添加网络路由的脚本?的主要内容,如果未能解决你的问题,请参考以下文章

趣谈网络协议工具篇:如何在Linux上添加路由

静态路由

求大神给个openwrt同步网络时间的开机启动脚本

利用脚本配置思科路由器教程

计算机网络基础知识笔记

在 html 页面上动态添加到脚本 src 的路由