Корректный способ получить IP-адреса Клиента от http. Запрос

От чего корректный путь состоит в том, чтобы получить IP-адреса всего клиента http.Request? В PHP существует много переменных, которые я должен проверить. Действительно ли это - то же на Движении?

Тот, который я нашел:

req.RemoteAddr

И действительно ли запрос чувствителен к регистру? например, x-forwarded-for совпадает с X-Forwarded-For и X-FORWARDED-FOR? (от req.Header.Get("X-FORWARDED-FOR"))

59
задан 27 May 2019 в 22:41

1 ответ

Это - то, как я придумываю 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

  • Удаленный Адрес - последнее средство (обычно не будет надежно, поскольку это могло бы быть последним IP или если это - явный запрос HTTP к серверу т.е. никакой подсистеме балансировки нагрузки)
5
ответ дан 1 November 2019 в 12:32

Другие вопросы по тегам:

Похожие вопросы: