package main
import (
"fmt"
"os/exec"
"strings"
"github.com/safchain/ethtool"
)
func main() {
baseNicPath := "/sys/class/net/"
cmd := exec.Command("ls", baseNicPath)
buf, err := cmd.Output()
if err != nil {
//fmt.Println("Error:", err)
return
}
output := string(buf)
for _, device := range strings.Split(output, "\n") {
if len(device) > 1 {
fmt.Println(device)
ethHandle, err := ethtool.NewEthtool()
if err != nil {
panic(err.Error())
}
defer ethHandle.Close()
stats, err := ethHandle.LinkState(device)
if err != nil {
panic(err.Error())
}
fmt.Printf("LinkName: %s LinkState: %d\n", device, stats)
}
}
}
©
golang获取网卡信息
最新推荐文章于 2023-04-14 10:36:43 发布
本文介绍了一个使用Go语言实现的网络设备状态监测程序。该程序通过读取系统目录下的网络设备信息,利用ethtool库获取每个网络设备的链接状态,并将其打印出来。涉及到的技术包括Go语言的基本语法、文件系统操作、外部命令执行、字符串处理以及第三方库ethtool的使用。
1872

被折叠的 条评论
为什么被折叠?



