Files
work_cation/utils/uuid.go
T

48 lines
815 B
Go

package utils
import (
"fmt"
"github.com/google/uuid"
"net"
"strings"
"sync"
"time"
)
var uuidint = 0
var lock sync.Mutex
func CreateUUID() string {
lock.Lock()
defer lock.Unlock()
// 生成基于字符串的 UUID
key := fmt.Sprintln(Get192Ip(), time.Now().Format("2006-01-02_15-04-05"), uuidint)
uuidint++
fmt.Println("key:", key)
u1 := uuid.NewSHA1(uuid.Nil, []byte(key))
return u1.String()
}
func Get192Ip() string {
interfaces, err := net.Interfaces()
if err != nil {
return ""
}
for _, iface := range interfaces {
addrs, err := iface.Addrs()
if err != nil {
continue
}
for _, addr := range addrs {
ip, _, _ := net.ParseCIDR(addr.String())
if ip != nil {
ipStr := ip.String()
if strings.HasPrefix(ipStr, "192") {
return ipStr
}
}
}
}
return ""
}