Как получить IP адрес юзера через httpContextAccessor в asp.NET Core?
Добрый вечер!
У меня возникла задача залогировать ошибку и IP адрес пользователя, в которого она возникла.
Суть в том, что не могу понять, как получить IP адрес через httpContextAccessor (Задача стоит получить IP через него).
Был один вариант, который выдавал мне в итоге ::1 (httpContextAccessor.HttpContext.Connection.RemoteIpAddress) , верно ли это? Я в этом сомневаюсь, ибо через класс Dns я получал более развёрнутую информацию об IP адресах (Dns.GetHostEntry(Dns.GetHostName()).AddressList())
Nik Faraday, Протоколы TCP и UDP не обмениваются DNS-именами и не передают списка адресов клиента. Всё, что сервер может знать о клиенте, это используемый им для этого соединения IP-адрес и порт. Именно этот адрес и выводит httpContextAccessor.HttpContext.Connection.RemoteIpAddress. Никакого другого получить неполучится. Если хочется получить имя хоста, то можно попытаться сделать как то так, но IP-адрес не обязан иметь привязанное к нему имя и это имя не обязано указывать на все адреса клиента. Dns.GetHostName() это единственное исключение, позволяющее получить полную информацию.