wat is een goed ongeldig IP-adres om te gebruiken voor unit tests?

Ik schrijf unit-tests voor een clientbibliotheek. Ik wil een verbinding met een ongeldige poort en een ongeldig IP-adres testen. Wat is een goed ip-adres om te gebruiken dat mogelijk niet ergens naartoe wordt gerouteerd? Ik wil geen aannames doen over het netwerk waarop de machine staat waarop de unit-tests worden uitgevoerd. LOCALHOST lijkt een slechte keuze, aangezien dat de geldige machine is waarop de servercomponent wordt uitgevoerd en ik een ongeldige poort afzonderlijk wil testen. Is er ergens een INVALID-IP gereserveerd in de IPv4-specificatie?


Antwoord 1, autoriteit 100%

Volgens RFC 5737:

De blokken 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2),
en 203.0.113.0/24 (TEST-NET-3) zijn bedoeld voor gebruik in documentatie.

Dit betekent dat u een IP-adres uit deze reeksen kunt kiezen:

  • 192.0.2.0 – 192.0.2.255
  • 198.51.100.0 – 198.51.100.255
  • 203.0.113.0 – 203.0.113.255

Antwoord 2, autoriteit 16%

Als u op zoek bent naar een echt ongeldig IP-adres (in tegenstelling tot een niet-routeerbaar adres), kunt u profiteren van het feit dat de eerste byte van een Klasse Aadres mag niet 0zijn.

Bijvoorbeeld:

0.42.42.42

Antwoord 3, autoriteit 5%

Het antwoord van Jonathan (en zijn opmerkingen) zijn goed voor IPv4

Als je tests IPv6 ondersteunen, heeft het een expliciet zwart gat dat je kunt gebruiken: 0100::/64zoals gedefinieerd in RFC 6666

Het is verleidelijk om 254.254.254.254 te gebruiken omdat het gemakkelijk te onthouden is, maar op sommige platforms geeft het een onmiddellijke “verzending mislukt. Algemene fout” in plaats van een daadwerkelijke time-out die een ongeldige eenheidstest kan zijn.


Antwoord 4, autoriteit 3%

Er zijn 3 privé IP-blokkades die je voor zulke dingen kunt gebruiken:

10/8 (10.0.0.0 -> 10.255.255.255) (een 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) (een old school Class B netblock)


Antwoord 5

254.254.254.254

Zou in het gereserveerde domein voor toekomstig gebruik moeten staan…

RFC 1700

Other episodes