Why is my localhost not 127.0.0.1 but ::1, and what notation is that?

This is because ping on Windows Vista and newer Windows uses IPv6 by default when available. ::1 is a shortened notation of IPv6 loopback address - equivalent of IPv4 loopback 127.0.0.1.

The full notation of the abbreviated ::1 IPv6 address is 0000:0000:0000:0000:0000:0000:0000:0001.

If you want to force ping to use IPv4 instead you can specify the IPv4 address explicitly or use the -4 option.

ping 127.0.0.1
ping -4 localhost

If you want to change the IPv6/IPv4 preference overall you can check IPv4 vs IPv6 priority in Windows 7.

For additional information you can also see the article localhost.


[::1] is shorthand for loopback address in IPv6. If you would like to disable IPv6 for some reason (I would not advise it, but you may have a specific reason for wanting it), all you need to do is the following (for Windows 7):

  • Start, Control Panel
  • Network and Sharing
  • View Active Network, Local Area Connection, Properties
  • Uncheck the checkbox next to Internet Network Protocol Version 6

If you'd like screenshots, a guide from Microsoft can be found here: link.

Additionally, you may also want to take a look at the Wikipedia Page for IPv6, specifically, Presentation:

The localhost (loopback) address, 0:0:0:0:0:0:0:1, and the IPv6 unspecified address, 0:0:0:0:0:0:0:0, are reduced to ::1 and ::, respectively. This two-colon replacement may only be applied once in an address, because multiple occurrences would create an ambiguous representation.

To summarize, this is basically the equivalent of wanting to write every number 1 to 100, but instead of writing out every number individually, instead you write 1, 2, 3...99, 100 or 1-100