Skip to content

0x1un/go-dmidecode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dmidecode

纯Golang实现的dmidecode, 零依赖, 支持Linux, Unix, Windows

功能和命令行的dmidecode工具一样, 使用方式参考: example

参照[DSP0134_3.1.1.pdf]进行解析

安装方式

$ go get "github.com/0x1un/dmidecode"

使用样例

package main

import (
	"fmt"
	"os"

	"github.com/0x1un/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()
	// dmi.Power()
	checkError(err)

	for i := range infos {
		fmt.Println(infos[i])
	}
}

CLI 使用

$ go run cmd/main.go -d -t [bios, system, baseboard, chassis, onboard, port, processor, memory, slot, power]