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 0
zijn.
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::/64
zoals 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…