go语言判断user-agent

2023-08-02 21:24:17

go语言获取用户代理

# 目标

使用go语言获取用户代理信息并判断设备类型。

# User-Agent是啥

User-Agent叫做用户代理,是HTTP协议中请求头中的一个字段值。通过该字段值可以告诉网站服务器用户使用的什么产品发送的http请求。该信息一般发送请求的产品名称、操作系统、版本号等信息。

# 参考代码

新建文件 main.go 输入如下参考代码:


package main

import (
 "bytes"
 "fmt"
 "net/http"
 "strconv"
 "github.com/gin-gonic/gin"
 "github.com/mssola/user_agent"
)



func Default(c *gin.Context) {
 message := `hello`
 c.String(http.StatusOK, message)
}

func ua(c *gin.Context) {
 var bt bytes.Buffer
 for k, v := range c.Request.Header {
  fmt.Println(k, v[0])
  bt.WriteString(fmt.Sprintln(k, "=", v[0]))
 }
 ua := user_agent.New(c.Request.Header.Get("User-Agent"))
 fmt.Println("is mobile:", ua.Mobile())
 fmt.Println("Platform is", ua.Platform())
 fmt.Println("OS is", ua.OS())
 uaStr := fmt.Sprintln("User-Agent:", ua.UA()) + fmt.Sprintln("is mobile:", ua.Mobile()) + fmt.Sprintln("Platform is", ua.Platform()) + fmt.Sprintln("OS is", ua.OS())
 c.String(http.StatusOK, uaStr)
}

func main() {
 router := gin.Default()
 router.GET("/", ua)
 router.Run(":" + strconv.Itoa(8081))
}
  1. 选择ide顶部的新建终端,执行如下命令
go run main.go
  1. 在浏览器打开 http://localhost:8081 即可看到类似如下的信息显示。
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
is mobile: false
Platform is Windows
OS is Windows 10

# 参考资料

本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

扫描下方二维码阅读当前文章

浏览器、微信扫码

评 论:

好文推荐
每天进步一点点~