Как получить IPv6-адрес в c #? - PullRequest
9 голосов
/ 02 февраля 2012

Я использую Request.UserHostAddress, можно получить только адрес IPv4, как получить адрес IPv6 посетителя?

Ответы [ 2 ]

12 голосов
/ 02 февраля 2012

Полагаю, вы говорите о HttpRequest.UserHostAddress.Он всегда будет возвращать адрес, который был использован для подключения к вам.Если запрос был сделан через IPv6, он вернет их адрес IPv6;если запрос был сделан через IPv4, он вернет их адрес IPv4.

Вам следует начать с выяснения, почему запрос выполняется через IPv4.И люди в http://serverfault.com, вероятно, будут больше помогать в этом.

6 голосов
/ 02 февраля 2012

IPv4-адрес преобразуется в IPv6-адрес путем размещения 4 октетов IPv4-адрес в 4 правых октета IPv6-адреса.

После вставки 4 октетов адреса IPv4 в самые правые 4 октета адреса IPv6, остальные левые октеты будут быть 0 в значении.

...