web-dev-qa-db-fra.com

quelle est une bonne adresse IP invalide à utiliser pour les tests unitaires?

J'écris des tests unitaires pour une bibliothèque cliente. Je veux tester la connexion avec un port non valide et une adresse IP non valide. Quelle est une bonne adresse IP à utiliser qui ne sera potentiellement pas acheminée quelque part? Je ne veux faire aucune hypothèse sur le réseau sur lequel la machine exécutant les tests unitaires est activée. LOCALHOST semble être un mauvais choix car c'est la machine valide exécutant le composant serveur et je veux tester séparément un port invalide. Y a-t-il un IP INVALIDE réservé quelque part dans la spécification IPv4?

47
Ryan R.

Selon RFC 5737 :

Les blocs 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2) et 203.0.113.0/24 (TEST-NET-3) sont fournis pour une utilisation dans la documentation.

Cela signifie que vous pouvez utiliser choisir une adresse IP dans ces plages:

  • 192.0.2.0 - 192.0.2.255
  • 198.51.100.0 - 198.51.100.255
  • 203.0.113.0 - 203.0.113.255
50
Jonathan

Si vous recherchez une adresse IP vraiment invalide (par opposition à une adresse non routable), vous pouvez profiter du fait que le premier octet d'une adresse Classe A ne peut pas être 0.

Par exemple:

0.42.42.42
11

La réponse de Jonathan (et ses commentaires) est bonne pour IPv4

Si vos tests prennent en charge IPv6, il comporte un trou noir explicite que vous pouvez utiliser: 0100::/64 comme défini dans RFC 6666

Il est tentant d'utiliser 254.254.254.254 car c'est facile à retenir, mais sur certaines plates-formes, cela donne un "échec de transmission. Échec général" immédiat plutôt qu'un délai réel qui peut être un test unitaire invalide.

3
Chris Rudd

Il y a 3 blocs IP privés que vous pouvez utiliser pour de telles choses:

10/8 (10.0.0.0 -> 10.255.255.255) (un netblock de classe A à l'ancienne)

172.16/12 (172.16.0.0 -> 172.131.255.255

196.168/16 (192.168.0.0 -> 192.168.255.255) (un netblock de classe B de la vieille école)

2
Marc B

254.254.254.254

Devrait être dans le domaine réservé pour une utilisation future ...

RFC 17

1
William Dwyer