linux环境下 go语言识别biso数据

软件注册如果需要绑定硬件,多可文档系统识别机器的BIOS硬件信息给软件授权,如下是linux环境GO语言识别biso代码:

通过运行Linux命令dmidecode 得到硬件信息,需要程序程序有root权限。

package sysinfo  import (  "fmt"  "os/exec"  "runtime"  "strings"  "testing"  )  func RunPipeCmd(name string, arg ...string) (string, error) {  cmd := exec.Command(name, arg...)  // 命令的错误输出和标准输出都连接到同一个管道  stdout, err := cmd.StdoutPipe()  cmd.Stderr = cmd.Stdout  if err != nil {  return "", err  }  if err = cmd.Start(); err != nil {  return "", err  }  builder := new(strings.Builder)  // 从管道中实时获取输出并打印到终端  for {  tmp := make([]byte, 1024)  _, err := stdout.Read(tmp)  builder.WriteString(string(tmp))  if err != nil {  break  }  }  if err = cmd.Wait(); err != nil {  return builder.String(), err  }  //  return builder.String(), nil  }  func BIOS() string {  s, _ := RunPipeCmd("dmidecode", "-t", "1")  arr := strings.Split(s, "\n")  for _, a := range arr {  a = strings.ToLower(a)  //  x := strings.Index(a, "serial number:")  if x >= 0 {  s2 := a[x+14:]  var bios = strings.ReplaceAll(s2, " ", "")  return strings.TrimSpace(bios)  }  }  return ""  }  func TestNtHardware(t *testing.T) {  fmt.Printf("Sn: %s\n", BIOS())  }  


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部