what is a good invalid IP address to use for unit tests?
There's 3 private IP blocks you can use for such things:
10/8 (10.0.0.0 -> 10.255.255.255) (an old school Class A netblock)
172.16/12 (172.16.0.0 -> 172.131.255.255
196.168/16 (192.168.0.0 -> 192.168.255.255) (an old school Class B netblock)
According to RFC 5737:
The blocks 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2), and 203.0.113.0/24 (TEST-NET-3) are provided for use in documentation.
This means you can use pick an IP address from these ranges:
- 192.0.2.0 - 192.0.2.255
- 198.51.100.0 - 198.51.100.255
- 203.0.113.0 - 203.0.113.255
If you're looking for a truly invalid IP address (as opposed to an unrouteable one), you can take advantage of the fact that the first byte of a Class A address cannot be 0
.
For example:
0.42.42.42
The answer from Jonathan (and it's comments) are good for IPv4
If your tests support IPv6 it has an explicit black hole you can use: 0100::/64
as defined in RFC 6666
It's tempting to use 254.254.254.254 since it's easy to remember, but on some platforms it gives a immediate "transmit failed. General Failure" rather than an actual timeout which may be an invalid unit test.