api-server/main.go
2024-09-18 11:23:08 +08:00

100 lines
2.5 KiB
Go

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)
// }