I use Request.UserHostAddress
, can only get IPv4 address, how to get IPv6 address of a visitor?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
I assume you're talking about HttpRequest.UserHostAddress
. It will always return the address that was used to connect to you. If the request was made over IPv6, it will return their IPv6 address; if the request was made over IPv4, it will return their IPv4 address.
You should start by investigating why the request is being made over IPv4. And the folks at http://serverfault.com will probably be of more help on that.
回答2:
An IPv4 address is translated to an IPv6 address by placing the 4 octets of the IPv4 address into the rightmost 4 octets of the IPv6 address.
After inserting the 4 octets of the IPv4 address into the rightmost 4 octets of the IPv6 address, the remaining left-most octets would be 0 in value.