Why is there a percent sign '%' in the IPv6 address?
Problem
I am using the .NET Framework classes to get the IP addresses for my machine: I have a VirtualBox adapter which has both an IPv4 and IPv6 address. Using the .NET code, I am getting the IPv6 address as . Notice the at the end? However, if I query the same using , I get the address as , without the . Does the have any special significance? Edit: I just made some more observations about this and they match pretty well with what Stephen Jennings said in his answer. I installed VMware to see what IPv6 address it issued. The addresses were: Clearly, the numbers after % are not some hex representation. I checked all the properties available for a network adapter using WMI and found that the numbers are exactly the same as the property of each network adapter. As per MSDN, it uniquely identifies each network adapter and this property was introduced in Vista. What still confused me was why would the class allow you to create an IP address in that format unless it was valid. The answer was prov…
Error Output
Dns.GetHostAddresses(Dns.GetHostName())
Unverified for your environment
Select your OS to check compatibility.
1 Fix
Fix for: Why is there a percent sign '%' in the IPv6 address?
The number after the '%' is the scope ID. IPv6 defines at least three reachability scopes for addresses: Globally addressable. This is an IPv6 address given to you by your ISP. It is available to use on the public Internet. Link-local. This is similar to the 169.254.X.X range. It is an address that a computer assigns itself in order to facilitate local communications. These addresses don't get routed around on the public Internet because they're not globally unique. Node-local. This is an addre…
Awaiting Verification
Be the first to verify this fix
Sign in to verify this fix