以下是使用Golang和netlink包来根据输入接口名和状态开启或关闭主机某个接口的示例代码:
package main
import (
"fmt"
"log"
"net"
"github.com/vishvananda/netlink"
)
func main() {
interfaceName := "eth0" // 输入要操作的接口名称
desiredState := true // 输入期望的状态,true表示打开接口,false表示关闭接口
link, err := netlink.LinkByName(interfaceName)
if err != nil {
log.Fatal(err)
}
if desiredState {
err = netlink.LinkSetUp(link) // 打开接口
if err != nil {
log.Fatal(err)
}
fmt.Printf("Interface %s has been brought up.\n", interfaceName)
} else {
err = netlink.LinkSetDown(link) // 关闭接口
if err != nil {
log.Fatal(err)
}
fmt.Printf("Interface %s has been shut down.\n", interfaceName)
}
}
在这个示例程序中,我们首先通过netlink.LinkByName()函数获取指定名称的网络接口。然后,根据输入的状态参数来调用netlink.LinkSetUp()或netlink.LinkSetDown()方法进行相应操作。
请注意,在运行此代码时,您需要具有足够的权限来执行网络操作。您可以以root用户身份运行程序,或者在非特权用户上设置适当的权限。
希望这个示例对你有所帮助!如果你还有其他问题,请随时提问。
内容由零声教学AI助手提供,问题来源于学员提问




