以下是一个示例代码,它使用了 "netlink" 包来获取和操作Linux内核中的路由表:

package main

import (
    "fmt"
    "log"
    "net"
    "github.com/vishvananda/netlink"
)

func main() {
    // 获取所有路由
    routes, err := netlink.RouteList(nil, netlink.FAMILY_ALL)
    if err != nil {
        log.Fatalf("Failed to get routes: %v", err)
    }

    // 找到并打印出目标IP为 10.169.1.1 的路由
    for _, route := range routes {
        if route.Dst != nil && route.Dst.String() == "10.169.1.1/32" {
            fmt.Printf("Found route: %v\n", route)
            // 删除该路由
            err = netlink.RouteDel(&route)
            if err != nil {
                log.Fatalf("Failed to delete route: %v", err)
            }
            fmt.Println("Route deleted.")
            break
        }
    }
}

请注意,这段代码需要在 root 权限下运行,因为它需要对Linux内核中的路由表进行修改

golang 打印出接口为 1016911的路由 并删除

原文地址: https://www.cveoy.top/t/topic/fhqp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录