Поделиться через


Использование жестко заданных IPv4-адресов

Долголетие IPv4 привело к жесткому кодированию многих известных IPv4-адресов, таких как адреса обратного цикла (127.x.x.x.x),целые константы, такие как INADDR_LOOPBACK, среди прочего. Практика жесткой кодировки этих адресов представляет очевидные проблемы при модификации существующего приложения для поддержки IPv6 или создании новых программ, независимых от IP-версий.

Лучшие практики

  • Лучший подход заключается в том, чтобы избежать жесткого кода адресов.

Код, которого следует избегать

  • Избегайте использования жестко закодированных адресов в коде.

Модификация существующей кодовой базы для взаимодействия с IPv4 и IPv6

  1. Получите программу Checkv4.exe. Служебная программа Checkv4.exe устанавливается в составе пакета SDK для Microsoft Windows, выпущенного для Windows Vista и более поздних версий.
  2. Запустите программу Checkv4.exe для проверки вашего кода. Узнайте, как запустить программу Checkv4.exe для файлов в разделе "Использование программы Checkv4.exe".
  3. Программа Checkv4.exe оповещает вас о присутствии распространенных определений для адресов IPv4, таких как INADDR_LOOPBACK. Измените любой код, использующий литеральные строки с кодом, не зависящим от версии протокола.
  4. Выполните поиск в кодовой базе для других потенциальных литеральных строк по мере необходимости.

Служебная программа Checkv4.exe поможет найти обычные строковые литералы, но могут быть и другие, которые относятся именно к вашему приложению. Необходимо выполнить тщательный поиск и тестирование, чтобы убедиться, что база кода устранила потенциальные проблемы, связанные с литеральными строками.

Руководство по IPv6 для приложений сокетов Windows

Изменение структур данных для приложений Winsock для IPv6

Сокеты с двойным стеком для приложений Winsock IPv6

Вызовы функций для приложений Winsock IPv6

Проблемы с пользовательским интерфейсом для приложений Winsock IPv6

Базовые протоколы для приложений Winsock IPv6