m_log_request.go 1.6 KB

1234567891011121314151617181920212223
  1. package middleware
  2. import (
  3. "github.com/gin-gonic/gin"
  4. )
  5. /*
  6. `::1` 是 IPv6 地址中的本地主机地址,相当于 IPv4 中的 `127.0.0.1`,即本地回环地址。在 IPv6 地址中,`::1` 表示本地主机,通常用于代表本地计算机与本地服务进行通信,例如访问本地运行的服务器或服务。
  7. 在Gin框架中,`c.ClientIP()` 方法会尝试解析客户端的真实IP地址。然而,对于本地回环地址 `::1` 或者 `127.0.0.1`,这个方法可能会返回本地回环地址而不是实际的公共 IP 地址。在实际的网络部署中,您可能会看到类似 `::1` 或 `127.0.0.1` 的地址,特别是在开发和测试环境中。
  8. 如果您希望获取请求的真实IP地址,而不是本地回环地址,可以考虑使用一些反向代理服务器或负载均衡器,它们通常会在请求头中添加一个字段来传递客户端的真实IP地址。在Gin中,您可以使用`c.Request.Header.Get("X-Real-IP")`或`c.Request.Header.Get("X-Forwarded-For")`来获取这些头部信息中的真实IP地址。请注意,使用这些方法时需要谨慎,确保信任传递的 IP 地址信息,以防止IP欺骗等安全问题。
  9. */
  10. // LogRequest 中间件函数,用于打印请求方的IP地址和请求路径
  11. func LogRequest() gin.HandlerFunc {
  12. return func(c *gin.Context) {
  13. //clientIP := c.ClientIP() // 获取请求方的IP地址
  14. //requestPath := c.Request.URL.Path // 获取请求路径
  15. //// 打印请求方的IP地址和请求路径
  16. //c_log.GlobalLogger.Infof("客户端 %v 发送请求 %v", clientIP, requestPath)
  17. // 继续处理后续请求
  18. c.Next()
  19. }
  20. }