-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
add optional IP anonymization #2798
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Hi,
I we can not accept this as adding new method to Context interface would be API breaking change as that type is an Interface.
I think you would be totally fine if you add utility public function in your code base like that. There is no need to add it to the Context interface.
func AnonymizedIP(c echo.Context) string { ip := c.RealIP() if ip == "" { return "" // safeguard } parsedIP := net.ParseIP(ip) if parsedIP == nil { return ip // safeguard, not an ip } // IPv4 if parsedIP.To4() != nil { ipParts := strings.Split(parsedIP.String(), ".") if len(ipParts) == 4 { ipParts[3] = "0" return strings.Join(ipParts, ".") } } // IPv6 ipParts := strings.Split(parsedIP.String(), ":") ipParts[len(ipParts)-1] = "0" return strings.Join(ipParts, ":") }
aine-etke
commented
Jun 24, 2025
Hello,
I already did a public utility function in https://github.com/etkecc/go-kit/blob/main/ip.go but just wanted to provide a "frictionless" version as part of the echo.
Would you mind telling if you are against Context.AnonymizedIP() method specifically and will accept middleware changes (logger and request logger), or you don't like the proposed idea at all, please?
This PR provides an option to anonymize IP:
Context.AnonymizedIP()remote_ip_anontokenAnonymizeRemoteIPoption