От чего корректный путь состоит в том, чтобы получить IP-адреса всего клиента http.Request
? В PHP
существует много переменных, которые я должен проверить. Действительно ли это - то же на Движении?
Тот, который я нашел:
req.RemoteAddr
И действительно ли запрос чувствителен к регистру? например, x-forwarded-for
совпадает с X-Forwarded-For
и X-FORWARDED-FOR
? (от req.Header.Get("X-FORWARDED-FOR")
)
Это - то, как я придумываю IP
func ReadUserIP(r *http.Request) string {
IPAddress := r.Header.Get("X-Real-Ip")
if IPAddress == "" {
IPAddress = r.Header.Get("X-Forwarded-For")
}
if IPAddress == "" {
IPAddress = r.RemoteAddr
}
return IPAddress
}
X-Real-Ip - выбирает сначала истинный IP (если запросы будут находиться позади нескольких источников/подсистем балансировки нагрузки NAT)
X-Forwarded-For - если по некоторым причинам X-Real-Ip будет пробелом и не возвратит ответ, то получает от X-Forwarded-For