package middleware

import (
	"github.com/gin-gonic/gin"
)

/*
`::1` 是 IPv6 地址中的本地主机地址，相当于 IPv4 中的 `127.0.0.1`，即本地回环地址。在 IPv6 地址中，`::1` 表示本地主机，通常用于代表本地计算机与本地服务进行通信，例如访问本地运行的服务器或服务。
在Gin框架中，`c.ClientIP()` 方法会尝试解析客户端的真实IP地址。然而，对于本地回环地址 `::1` 或者 `127.0.0.1`，这个方法可能会返回本地回环地址而不是实际的公共 IP 地址。在实际的网络部署中，您可能会看到类似 `::1` 或 `127.0.0.1` 的地址，特别是在开发和测试环境中。
如果您希望获取请求的真实IP地址，而不是本地回环地址，可以考虑使用一些反向代理服务器或负载均衡器，它们通常会在请求头中添加一个字段来传递客户端的真实IP地址。在Gin中，您可以使用`c.Request.Header.Get("X-Real-IP")`或`c.Request.Header.Get("X-Forwarded-For")`来获取这些头部信息中的真实IP地址。请注意，使用这些方法时需要谨慎，确保信任传递的 IP 地址信息，以防止IP欺骗等安全问题。
*/

// LogRequest 中间件函数，用于打印请求方的IP地址和请求路径
func LogRequest() gin.HandlerFunc {
	return func(c *gin.Context) {
		//clientIP := c.ClientIP()          // 获取请求方的IP地址
		//requestPath := c.Request.URL.Path // 获取请求路径
		//// 打印请求方的IP地址和请求路径
		//c_log.GlobalLogger.Infof("客户端 %v 发送请求 %v", clientIP, requestPath)
		// 继续处理后续请求
		c.Next()
	}
}
