Same Address? #296

Two ways of writing an address. Are they the same host, or two different ones?

An address is 32 bits, but it can be written down in more than one way. A part that starts with 0 was read as octal, a part that starts with 0x as hexadecimal, and a short form like 192.168.257 reads the last part as a whole number rather than as an octet. Historic parsers accepted all of it. Modern ones mostly do not — and the difference between the two is a well-known way past a filter that only checks the text.

Are these the same host?

First

10.0.0.1

↔

Second

10.0.0.255

Pick the one you think is right.

Next puzzle →

Streak —

Best today — · all time —

Kept in this browser only; the server never sees a score.

How they read

10.0.0.1 = 10.0.0.1

dotted decimal

10.0.0.255 = 10.0.0.255

dotted decimal

Why that is the answer

They are different addresses. Read 10.0.0.1 as 10.0.0.1, and 10.0.0.255 as 10.0.0.255 — one bit or one octet apart. The normal way to write an address.

00001010 00000000 00000000 00000001
00001010 00000000 00000000 11111111


The arithmetic

An address is four octets, and each octet is eight bits. The spellings differ in how the octets are written, not in what they mean:

  • 192.168.1.1 — four decimal octets. 192 is 11000000.
  • 192.168.001.001 — the same, with the leading zeros. Leading zeroes do not make an octet octal on their own; they are just padding.
  • 0300.0250.0001.0001 — octal. 0300 is 192 in decimal, and 0250 is 168.
  • 0xc0.0xa8.0x01.0x01 — hexadecimal. 0xc0 is 192 and 0xa8 is 168.
  • 192.168.257 — the short form. The last part is not an octet at all: it is the low 16 bits of the address, so 257 = 0x0101, which splits into the last two octets 1.1.

That is the whole lesson, and it has a practical edge: a system that accepts 0177.0.0.1 as 127.0.0.1 is a system whose "is this address private?" check can be written in a way that only matches the dotted decimal form. The address is the same host either way — the filter is what differs.

Modern parsers reject most of this on purpose. A hostname or an address that comes from a user should be read one way, and the way that is written down, not in whatever base it looks like it might be in.

This is the daily round, the same for everyone on 2026-10-23. /notation.htm?p=1, ?p=2, ?p=3 … walk through the pairs one at a time.

Like this one? Subnet Sweeper is the same bits with a mask in it, Public or Reserved? asks what an address space is for, and the network tools will resolve a name back to an address.


Keyboard shortcuts
← → previous or next IP address
g focus search, clear it
d toggle dark / light theme
? show or hide this list
esc close this list