package main import ( "fmt" "github.com/gin-gonic/gin" "net/http" ) func main() { r := gin.Default() // 定义一个处理器函数,用于获取所有的请求头并返回给客户端 r.GET("/api/getHeaders", func(c *gin.Context) { // 获取所有的请求头 request := c.Request headers := request.Header clientIP := c.ClientIP() // 将请求头转换为 map[string]string headersMap := make(map[string]string) for key, value := range headers { headersMap[key] = value[0] // 注意,这里假设每个键只有一个值,你可以根据实际情况修改逻辑 } headersMap["platform"] = headers.Get("Sec-CH-UA-Platform") headersMap["model"] = headers.Get("Sec-CH-UA-Model") // 返回请求头的 map c.JSON(http.StatusOK, gin.H{ "ip": clientIP, "headers": headersMap, }) }) // 启动 Gin 服务器 err := r.Run(":80") if err != nil { fmt.Print("Error") return } } // package main // // import ( // "encoding/base64" // "fmt" // "log" // "regexp" // ) // // func decodeGclid(gclid string, splitTimestamp bool) map[int]interface{} { // // Base64 URL decode // base64Decoded, err := base64.RawURLEncoding.DecodeString(gclid) // if err != nil { // log.Fatalf("Failed to decode base64 URL: %v", err) // } // // // Regular expression to match the pattern // re := regexp.MustCompile(`(?=[\x5\xd\x15\x1d%\-5=EMU\]emu}\x85\x8d\x95\x9d\xa5\xad\xb5\xbd\xc5\xcd\xd5\xd5\xe5\xed\xf5\xfd])([^\x00-\x7f]*[\x00-\x7f])(.{4})|([^\x00-\x7f]*[\x00-\x7f])([^\x80-\xff]*[\x00-\x7f])`) // matches := re.FindAllSubmatch(base64Decoded, -1) // // result := make(map[int]interface{}) // for _, match := range matches { // var key, val int64 // if len(match[1]) > 0 { // for i, c := range match[1] { // key += int64(c&0x7f) << (i * 7) // } // for i, c := range match[2] { // val += int64(c) << (i * 8) // } // } else { // for i, c := range match[3] { // key += int64(c&0x7f) << (i * 7) // } // for i, c := range match[4] { // val += int64(c&0x7f) << (i * 7) // } // } // result[int(key>>3)] = val // } // // if splitTimestamp { // if timestamp, ok := result[1].(int64); ok { // seconds := timestamp / 1000000 // microseconds := timestamp % 1000000 // result[1] = []int64{seconds, microseconds} // } // } // // return result // } // // func main() { // gclid := "CKSDxc_qhLkCFQyk4AodO24Arg" // 你的 GCLID 字符串 // // decoded := decodeGclid(gclid, true) // fmt.Printf("Decoded GCLID: %+v\n", decoded) // }