o que é um bom endereço IP inválido para usar para testes unitários?

Estou a escrever testes de unidade para uma biblioteca de clientes. Quero testar a ligação com uma porta inválida e um ip inválido. O que é um bom endereço ip para usar que não pode ser roteado em algum lugar? Não quero fazer suposições sobre a rede em que a máquina está a fazer os testes da unidade. LOCALHOST parece ser uma má escolha, uma vez que essa é a máquina válida executando o componente do servidor e eu quero testar uma porta inválida separadamente. Existe um IP inválido reservado algures no IPv4 spec?

Author: Ryan R., 2012-05-04

5 answers

De acordo com RFC 5737:

Os blocos 192.0.2.0 / 24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2), e 203.0.113.0 / 24 (TEST-NET-3) são fornecidos para utilização em documentação.

Isto significa que pode usar um endereço IP destes intervalos:

  • 192.0.2.0 - 192.0.2.255
  • 198.51.100.0 - 198.51.100.255
  • 203.0.113.0 - 203.0.113.255
 67
Author: Jonathan, 2012-05-04 20:59:52

Se procura um endereço IP verdadeiramente inválido (em oposição a um não roteável), pode aproveitar o facto de que o primeiro byte de um endereço de classe a não pode ser 0.

Por exemplo:

0.42.42.42
 12
Author: Frédéric Hamidi, 2012-05-04 21:10:43
A resposta do Jonathan (e os seus comentários) são bons para o IPv4

Se os seus testes suportarem o IPv6, este tem um buraco negro explícito que pode usar: 0100::/64 tal como definido em RFC 6666

É tentador usar o 254.254.254.254, uma vez que é fácil de lembrar, mas em algumas plataformas dá uma "transmissão" imediata falhou. Falha geral " em vez de um tempo-limite real que pode ser um teste de unidade inválido.
 4
Author: Chris Rudd, 2019-04-03 17:25:14
Existem 3 blocos de IP privados que podem ser usados para tais coisas:

10/8 (10.0.0.0 -> 10.255.255.255) (uma velha escola Classe A netblock)

172.16/12 (172.16.0.0 -> 172.131.255.255

196.168/16 (192.168.0.0 -> 192.168.255.255) (uma velha escola Classe B netblock)

 2
Author: Marc B, 2012-05-04 21:00:23

254.254.254.254

Deve estar no domínio reservado para uso futuro...

RFC 1700

 1
Author: William Dwyer, 2012-05-04 20:59:19