Why do "curl 0.0.0.0" and "nc 0.0.0.0 80" work? Why do "curl 0.0.0.0" and "nc 0.0.0.0 80" work? curl curl

Why do "curl 0.0.0.0" and "nc 0.0.0.0 80" work?


0.0.0.0 is a valid IP address and it does not remap to 127.0.0.1. curl and nc use that address just as they would use any other IPv4 numerical address.

A lot of tools and systems do not support that as an address since it equals to a binary all-zero 32bit pattern which is treated as magic in a lot of APIs.

Sort of related: port 0 also works with a similar set of caveats.