Spaces:
Sleeping
Sleeping
| package node | |
| import ( | |
| "encoding/base64" | |
| "fmt" | |
| "os" | |
| "regexp" | |
| "strings" | |
| ) | |
| type SqlConfig struct { | |
| Clash string `json:"clash"` | |
| Surge string `json:"surge"` | |
| Udp bool `json:"udp"` | |
| Cert bool `json:"cert"` | |
| } | |
| // ipv6地址匹配规则 | |
| func ValRetIPv6Addr(s string) string { | |
| pattern := `\[([0-9a-fA-F:]+)\]` | |
| re := regexp.MustCompile(pattern) | |
| match := re.FindStringSubmatch(s) | |
| if len(match) > 0 { | |
| return match[1] | |
| } else { | |
| return s | |
| } | |
| } | |
| // 判断是否需要补全 | |
| func IsBase64makeup(s string) string { | |
| l := len(s) | |
| if l%4 != 0 { | |
| return s + strings.Repeat("=", 4-l%4) | |
| } | |
| return s | |
| } | |
| // base64编码 | |
| func Base64Encode(s string) string { | |
| return base64.StdEncoding.EncodeToString([]byte(s)) | |
| } | |
| // base64解码 | |
| func Base64Decode(s string) string { | |
| // 去除空格 | |
| s = strings.ReplaceAll(s, " ", "") | |
| // 判断是否有特殊字符来判断是标准base64还是url base64 | |
| match, err := regexp.MatchString(`[_-]`, s) | |
| if err != nil { | |
| fmt.Println(err) | |
| } | |
| if !match { | |
| // 默认使用标准解码 | |
| encoded := IsBase64makeup(s) | |
| decoded, err := base64.StdEncoding.DecodeString(encoded) | |
| if err != nil { | |
| return s // 返回原字符串 | |
| } | |
| decoded_str := string(decoded) | |
| return decoded_str | |
| } else { | |
| // 如果有特殊字符则使用URL解码 | |
| encoded := IsBase64makeup(s) | |
| decoded, err := base64.URLEncoding.DecodeString(encoded) | |
| if err != nil { | |
| return s // 返回原字符串 | |
| } | |
| decoded_str := string(decoded) | |
| return decoded_str | |
| } | |
| } | |
| // base64解码不自动补齐 | |
| func Base64Decode2(s string) string { | |
| // 去除空格 | |
| s = strings.ReplaceAll(s, " ", "") | |
| // 判断是否有特殊字符来判断是标准base64还是url base64 | |
| match, err := regexp.MatchString(`[_-]`, s) | |
| if err != nil { | |
| fmt.Println(err) | |
| } | |
| if !match { | |
| // 默认使用标准解码 | |
| decoded, err := base64.StdEncoding.DecodeString(s) | |
| if err != nil { | |
| return s // 返回原字符串 | |
| } | |
| decoded_str := string(decoded) | |
| return decoded_str | |
| } else { | |
| // 如果有特殊字符则使用URL解码 | |
| decoded, err := base64.URLEncoding.DecodeString(s) | |
| if err != nil { | |
| return s // 返回原字符串 | |
| } | |
| decoded_str := string(decoded) | |
| return decoded_str | |
| } | |
| } | |
| // 检查环境 | |
| func CheckEnvironment() bool { | |
| APP_ENV := os.Getenv("APP_ENV") | |
| if APP_ENV == "" { | |
| // fmt.Println("APP_ENV环境变量未设置") | |
| return false | |
| } | |
| if strings.Contains(APP_ENV, "development") { | |
| // fmt.Println("你现在是开发环境") | |
| return true | |
| } | |
| // fmt.Println("你现在是生产环境") | |
| return false | |
| } | |