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())  

    }  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值