2016-03-29 2 views
0

Я хочу получить IP-адрес пользователя, который вошел в систему, используя C# .Net Framework 4.6.Как получить UserHostAddress в .Net Framework 4.6

Я написал следующий код:

var ipaddress = System.Web.HttpContext.Current.Request.UserHostAddress; 

но IPAddress содержит :: 1. Как я могу получить полный адрес. Я просто тестирую код только в localhost. У меня установлен IIS7. И .Net 2015 Framework 4.6.

+2

':: 1' - это петлевой адрес IPv6 для локального хоста, поэтому то, что вы получаете, полностью ожидается. – vcsjones

+0

(а также вы получаете петлю IPv6, а не v4) – rbm

ответ

1

::1 - правильный адрес.

Я просто тестирую код только в локальном хосте.

localhost имеет два IP-адреса в Windows (обычно). 127.0.0.1 и :: 1. Первый - это петлевой адрес IPv4, а последний - версия IPv6, сокращенно.

IPv6 по умолчанию используется для локального хоста, и поскольку у вас есть браузер с поддержкой IPv6, он использует IPv6-адрес.

Если вы хотите настроить веб-приложение для доступа к локальной сети, попробуйте получить доступ к нему с другого компьютера, тогда IP-адрес будет IP-адресом «удаленного» компьютера.

+0

Но здесь, в случае ошибки Framework 4.6, я думаю, что приведенный выше код не поддерживает фреймворк 4.6.Необходимо найти альтернативный код, поддерживающий FW4.6. –

Смежные вопросы