Pinging Localhost vs 127.0.0.1 – Differences Explained

loopbackping

If I ping localhost, I receive a reply from ::1 which IIRC is the IPV6 loopback address.

If I ping 127.0.0.1, I receive a reply from 127.0.0.1 as expected.

Why is there a difference when hostname resolution of localhost is indeed 127.0.0.1?

Please see the following screenshot:

Screenshot of command prompt ping localhost and ping 127.0.0.1

Best Answer

Hostnames can resolve to both IPv4 and IPv6 addresses. "localhost" resolves to IPv4 (127.0.0.1) and IPv6 (::1).

I think Windows' preference is to use IPv6 where possible, which is why localhost defaults to the IPv6 resolution. If you turned off IPv6 it would go to the IPv4 address.

The reason you dont encounter this much when pinging internet servers is that many ISPs don't provide customers with IPv6 addresses (and many routers/modems can't handle them), and you need all devices in a chain to use IPv6 if you want to reach a server using IPv6.

Related Question