1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package api
- import (
- "github.com/gin-gonic/gin"
- "github.com/shirou/gopsutil/net"
- )
- func Mac(r *GinRouter) {
- r.GET("/mac/info", MacInfo)
- }
- func MacInfo(c *gin.Context, apictx *ApiSession) (interface{}, error) {
- // diskInfo, _ := disk.Partitions(false)
- // fmt.Printf("%+v\n", diskInfo)
- // netInfo, _ := net.Interfaces()
- // fmt.Printf("%+v\n", netInfo)
- // cpuInfo, _ := cpu.Info()
- // fmt.Printf("%+v\n", cpuInfo)
- // memInfo, _ := mem.VirtualMemory()
- // fmt.Printf("%+v\n", memInfo)
- interfaces, err := net.Interfaces()
- if err != nil {
- return nil, err
- }
- macAddr := getRealMacAddr(interfaces)
- return UtilMd5(macAddr), nil
- }
- // b0:6e:bf:c5:32:30
- func getRealMacAddr(netInterfaces []net.InterfaceStat) string {
- loindex := 0
- for _, netInterface := range netInterfaces {
- if netInterface.Name == "lo" {
- loindex = netInterface.Index
- break
- }
- }
- if len(netInterfaces) < loindex+1 {
- return ""
- }
- return netInterfaces[loindex].HardwareAddr
- }
|