Я пишу модульные тесты для клиентской библиотеки. Я хочу проверить соединение с недопустимым портом и недопустимым ip. Какой хороший IP-адрес для использования, который потенциально не будет перенаправлен где-нибудь? Я не хочу делать какие-либо предположения о сети, на которой работает машина, выполняющая модульные тесты. LOCALHOST кажется плохим выбором, поскольку это действительная машина, на которой запущен серверный компонент, и я хочу проверить недействительный порт отдельно. Есть ли какой-либо INVALID-IP в спецификации IPv4?
Какой хороший неверный IP-адрес используется для модульных тестов?
Ответ 1
Согласно RFC 5737:
Блоки 192.0.2.0/24 (TEST-NET-1), 198.51.100.0/24 (TEST-NET-2), и 203.0.113.0/24 (TEST-NET-3) предназначены для использования в документации.
Это означает, что вы можете использовать IP-адрес из этих диапазонов:
- 192.0.2.0 - 192.0.2.255
- 198.51.100.0 - 198.51.100.255
- 203.0.113.0 - 203.0.113.255
Ответ 2
Если вы ищете действительно недействительный IP-адрес (в отличие от неиспользуемого), вы можете воспользоваться тем, что первый байт класса A не может быть 0
.
Например:
0.42.42.42
Ответ 3
Там 3 частных IP-блока, которые вы можете использовать для таких вещей:
10/8 (10.0.0.0 → 10.255.255.255) (старая школа класса A netblock)
172.16/12 (172.16.0.0 → 172.131.255.255
196.168/16 (192.168.0.0 → 192.168.255.255) (старая школа класса B netblock)
Ответ 4
254.254.254.254
Должен находиться в зарезервированном для будущего использования домене...
Ответ 5
Ответ от Джонатана (и его комментарии) хорош для IPv4
Если ваши тесты поддерживают IPv6, у него есть явная черная дыра, которую вы можете использовать: 0100:: /64
как определено в RFC 6666
Заманчиво использовать 254.254.254.254, поскольку его легко запомнить, но на некоторых платформах он дает немедленное "сбой передачи. Общий сбой", а не фактический тайм-аут, который может быть недопустимым модульным тестом.