licence.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
os.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
licence.go
@@ -154,13 +154,23 @@ func _verifyLicence(licenceText []byte) uint32 { var licence Licence var now = time.Now().Unix() if err := json.Unmarshal(licenceText, &licence); err != nil { return ValidationErrorMalformed } // 判断是否可以试用 if licence.RegCode.MachineCode == "FFFFFFFF" { osInstallTime := GetOSInstallationDate() if now - osInstallTime > 60 * 60 * 24 * 30 { return ValidationErrorExpired } return 0 } // 判断过期 now := time.Now().Unix() if now > licence.Expires { return ValidationErrorExpired } os.go
New file @@ -0,0 +1,28 @@ package licence import ( "fmt" "io/ioutil" "time" "syscall" ) func GetOSInstallationDate() int64{ fileSystemCreateTime := time.Now().Unix() fileSystemDir := "/etc" fileInfoList, err := ioutil.ReadDir(fileSystemDir) if err != nil { fmt.Println(err) } for i := range fileInfoList { stat_t := fileInfoList[i].Sys().(*syscall.Stat_t) if stat_t.Ctim.Sec < fileSystemCreateTime{ fileSystemCreateTime = stat_t.Ctim.Sec } } return fileSystemCreateTime }