如何在c#中获取IPv6地址?

9

我使用 Request.UserHostAddress,只能获取访问者的IPv4地址,如何获取其IPv6地址?


3
访客将拥有IPv4或IPv6地址之一,不会同时使用两种地址。 - Marc B
1
用户首先是通过IPv6访问网站吗?请参见https://dev59.com/e1_Va4cB1Zd3GeqPXdUO。 - GSerg
1
您可以随时手动将IPv4地址转换为IPv6:http://www.fnode.com/2009/11/convert-ipv4-into-ipv6/ - Max
2个回答

13

我假设您在谈论HttpRequest.UserHostAddress。它将始终返回用于连接的地址。如果请求通过IPv6进行,则会返回其IPv6地址;如果请求通过IPv4进行,则会返回其IPv4地址。

您应该首先调查为什么请求是通过IPv4进行的。而在http://serverfault.com网站上的专家可能会提供更多帮助。


6

IPv4地址被转换成IPv6地址时,需要将IPv4地址的4个八位组放置在IPv6地址的最右边的4个八位组中。

将IPv4地址的4个八位组插入到IPv6地址的最右边的4个八位组中后,剩下的最左边的八位组值将为0。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接