GO Golang. Нужно поправить кое-что в бэкенде
1 000 руб. за проект
Есть вот такой кусок кода:
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
}
if strings.Contains(IPAddress, ",") {
ips := strings.Split(IPAddress, ",")
if len(ips) > 0 {
return ips[0]
}
}
return IPAddress
}
который забирает IP юзера из хедера. В одном случае он делает это верно, а в другом добавляет еще и порт к IP (123.123.123.123:12345). Нужно залогировать запросы, и разобраться в чем дело. И в итоге скорее всего нужно будет исправить код так, чтобы в обоих случаях он определял именно 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
}
if strings.Contains(IPAddress, ",") {
ips := strings.Split(IPAddress, ",")
if len(ips) > 0 {
return ips[0]
}
}
return IPAddress
}
который забирает IP юзера из хедера. В одном случае он делает это верно, а в другом добавляет еще и порт к IP (123.123.123.123:12345). Нужно залогировать запросы, и разобраться в чем дело. И в итоге скорее всего нужно будет исправить код так, чтобы в обоих случаях он определял именно IP, без порта.
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.