check for ip in reverse proxy header

This commit is contained in:
cynic 2024-06-14 05:25:27 +00:00
parent 54be47f844
commit b51cca5347

View File

@ -20,8 +20,14 @@ func domainFromIP(target net.IP) string {
// handle HTTP requests // handle HTTP requests
func handler(w http.ResponseWriter, r *http.Request) { func handler(w http.ResponseWriter, r *http.Request) {
// get client's ip address
ip, port, err := net.SplitHostPort(r.RemoteAddr) ip, port, err := net.SplitHostPort(r.RemoteAddr)
_, _ = port, err _, _ = port, err
// check if we're behind a reverse proxy
xForwardedFor := r.Header.Get("X-Forwarded-For")
if xForwardedFor != "" {
ip = xForwardedFor
}
parsedIP := net.ParseIP(ip) parsedIP := net.ParseIP(ip)
// return domain for IPv6 only // return domain for IPv6 only
if parsedIP.To4() == nil { if parsedIP.To4() == nil {