Golang — функция вывода user IP

В случае использования вашего приложения через load balancer или через различные прокси вида Cloudflare задача вывода клиентского IP адреса заключается в правильной выборке header. От X-Real-Ip до CF_CONNECTING_IP или же X-Original-Forwarded-For.

Для этого я написал простую функцию по выборке IP адреса:

Алгоритм прост — мы смотрим на входящие HTTP хедеры и вытаскиваем возможный IP адрес по очереди:

X-Original-Forwarded-For -> X-Forwarded-For -> X-Real-Ip -> r.RemoteAddr

 

Leave a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.