Request.UserHostAddress проблема с возвращаемым результатом ":: 1" - PullRequest
50 голосов
/ 20 июня 2011

Я пытаюсь получить IP-адрес клиента, используя

    HttpContext.Request.UserHostAddress;

но возвращается ::1.

Как это решить?

Ответы [ 4 ]

50 голосов
/ 20 июня 2011

::1 для localhost, может быть это может быть полезным.

27 голосов
/ 20 июня 2011

Это не ошибка - вы подключаетесь с localhost на компьютере с поддержкой IPv6 .::1 является адресом обратной связи - двойное двоеточие означает «пропущенные нули» , поэтому этот адрес соответствует адресу 1.

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

3 голосов
/ 30 января 2013

Хотя это правда, что это не ошибка, возможно, вы можете проверить эту ссылку , где ваша проблема хорошо описана и "решена".В нем говорится, что поведение проблемы зависит от операционной системы, поскольку пользователь исправил некоторые проблемы в приложении, запущенном в Windows Server 2008 , комментируя строку ::1 в hosts файл, в то время как он должен был раскомментировать его в Windows 7 .

Надеюсь, вам удалось решить это!Удачи!

1 голос
/ 26 июня 2015

это не ошибка, на самом деле вы запускаете приложение на локальном хосте, оно просто дает вам IP-адрес локального хоста, и это формат ipv6

...