纯Golang实现的dmidecode, 零依赖, 支持Linux, Unix, Windows
功能和命令行的dmidecode工具一样, 使用方式参考: example
开发过程相关小博客: 使用Golang重新实现dmidecode
$ go get "github.com/leopay/dmidecode"
package main
import (
"fmt"
"os"
"github.com/leopay/dmidecode"
)
func checkError(err error) {
if err != nil {
fmt.Println(err)
os.Exit(1)
}
}
func main() {
dmi, err := dmidecode.New()
checkError(err)
infos, err := dmi.BIOS()
// 支持以下类型的解析
// dmi.BaseBoard()
// dmi.Chassis()
// dmi.MemoryArray()
// dmi.MemoryDevice()
// dmi.Onboard()
// dmi.PortConnector()
// dmi.Processor()
// dmi.ProcessorCache()
// dmi.Slot()
// dmi.System()
checkError(err)
for i := range infos {
fmt.Println(infos[i])
}
}
$ go run cmd/main.go -d -t [bios, system, baseboard, chassis, onboard, port, processor, memory, slot]