go get -u github.com/hentaiOS-Infrastructure/fasthttp-go-client-hints
import (
"fmt"
"net/http"
goclienthints "github.com/hentaiOS-Infrastructure/fasthttp-go-client-hints"
)
func Handler(ctx *fasthttp.RequestCtx) {
clientHints, err := clienthint.Parse(&ctx.Request.Header)
if err != nil {
return
}
// Sec-CH-UA field
fmt.Println("Brand: ", clientHints.Brand.Brand)
fmt.Println("Brand Version: ", clientHints.BrandVersion)
fmt.Println("Brands: ", clientHints.Brands)
// Sec-Ch-Ua-Platform filed
fmt.Println("Platform: ", clientHints.Platform)
// Sec-CH-UA-Platform-Version filed
fmt.Println("Platform Version: ", clientHints.PlatformVersion)
// Sec-Ch-Ua-Mobile filed
fmt.Println("IsMobile: ", clientHints.IsMobile)
// Sec-CH-UA-Arch filed
fmt.Println("Arch: ", clientHints.Architecture)
// Sec-CH-UA-Bitness filed
fmt.Println("Bitness: ", clientHints.Bitness)
// Sec-CH-UA-Model filed
fmt.Println("Model: ", clientHints.Model)
// Sec-Ch-Ua-Full-Version filed
fmt.Println("Full Version: ", clientHints.FullVersion)
}
Check Support Client Hints
import (
"net/http"
clienthint "github.com/hentaiOS-Infrastructure/fasthttp-go-client-hints"
)
func Handler2(w http.ResponseWriter, r *http.Request) {
isSupport := clienthint.IsSupportClientHints(&r.Header)
if isSupport {
// ...do something
}
}
MIT