Как получить IPv6-адрес в C#?

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

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам