在Go语言中,你可以使用github.com/vishvananda/netlink
包来操作网络路由。下面是一个示例代码,根据给定的输入使用netlink添加主机路由:
package main
import (
"fmt"
"log"
"net"
"github.com/vishvananda/netlink"
)
func main() {
destination := "192.168.201.0/24"
iface := "ens9"
gateway := "0.0.0.0"
destIP, destNet, err := net.ParseCIDR(destination)
if err != nil {
log.Fatal(err)
}
link, err := netlink.LinkByName(iface)
if err != nil {
log.Fatal(err)
}
gwIP := net.ParseIP(gateway)
route := &netlink.Route{
Dst: destNet,
Gw: gwIP,
Scope: netlink.SCOPE_UNIVERSE,
LinkIndex: link.Attrs().Index,
}
err = netlink.RouteAdd(route)
if err != nil {
log.Fatal(err)
}
fmt.Println("主机路由添加成功!")
}
上述代码解析目标地址和子网掩码,获取指定名称的网络接口,并创建一个包含目标地址、网关和接口索引等信息的路由对象。然后,使用netlink.RouteAdd
函数将该路由添加到系统中。
请确保你已安装了github.com/vishvananda/netlink
包,可通过以下命令进行安装:
go get -u github.com/vishvananda/netlink
希望这个示例能满足你的需求。如果有任何其他问题,请随时提问!
内容由零声教学AI助手提供,问题来源于学员提问