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))
}
- 选择ide顶部的新建终端,执行如下命令
go run main.go
- 在浏览器打开
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