Какой хороший неверный IP-адрес используется для модульных тестов?

Я пишу модульные тесты для клиентской библиотеки. Я хочу проверить соединение с недопустимым портом и недопустимым ip. Какой хороший IP-адрес для использования, который потенциально не будет перенаправлен где-нибудь? Я не хочу делать какие-либо предположения о сети, на которой работает машина, выполняющая модульные тесты. LOCALHOST кажется плохим выбором, поскольку это действительная машина, на которой запущен серверный компонент, и я хочу проверить недействительный порт отдельно. Есть ли какой-либо INVALID-IP в спецификации IPv4?

Ответ 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

Должен находиться в зарезервированном для будущего использования домене...

RFC 1700

Ответ 5

Ответ от Джонатана (и его комментарии) хорош для IPv4

Если ваши тесты поддерживают IPv6, у него есть явная черная дыра, которую вы можете использовать: 0100:: /64 как определено в RFC 6666

Заманчиво использовать 254.254.254.254, поскольку его легко запомнить, но на некоторых платформах он дает немедленное "сбой передачи. Общий сбой", а не фактический тайм-аут, который может быть недопустимым модульным тестом.