如果您想在不使用netlink的情况下,通过执行系统命令来添加路由,可以使用以下代码:
package main
import (
"fmt"
"log"
"os/exec"
)
func addRoute(destination string, iface string, gateway string, genmask string) {
cmd := exec.Command("ip", "route", "add", destination)
if iface != "" {
cmd.Args = append(cmd.Args, "dev", iface)
}
if gateway != "" {
cmd.Args = append(cmd.Args, "via", gateway)
}
if genmask != "" {
cmd.Args = append(cmd.Args, "netmask", genmask)
}
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
fmt.Println("Route added successfully.")
}
func main() {
destination := "192.168.201.0"
gateway := "0.0.0.0"
iface := "" // 如果未输入接口名,则留空;如果有接口名,请替换为实际的接口名
genmask := "255.255.255.0"
addRoute(destination, iface, gateway, genmask)
}
请确保在运行此代码时具有足够的权限来执行ip命令。以上代码会根据是否提供网关地址和掩码(genmask)来判断是否添加 via
和 netmask
参数到命令中。希望这次能满足您的需求。
内容由零声教学AI助手提供,问题来源于学员提问