| Предыдущий | Следующий |
| DNS_ERROR_INVALID_TYPE | DNS_ERROR_INVALID_PROPERTY |
DNS_ERROR_INVALID_IP_ADDRESS
Отделите разбор адреса от разрешения имени
DNS_ERROR_INVALID_IP_ADDRESS означает, что входные данные, которые должны представлять IP-адрес, не могут быть приняты. URL, конечная точка сокета, префикс CIDR или литерал IPv6 в скобках не являются автоматически простым адресом. Например, [2001:db8::1]:443 содержит корректный синтаксис конечной точки, но недопустим для API, ожидающего только текст адреса.
Самописная проверка подвержена ошибкам, особенно для сжатых форм IPv6. Используйте анализатор адресов, подходящий целевому семейству, и сохраняйте исходный текст для диагностики. Отдельно определите, разрешает ли окружающая операция идентификаторы области IPv6, формы IPv4-mapped или имена обратного поиска.
Что проверить
- Запишите точный ввод, включая пробелы и разделители; не удаляйте данные нормализацией до проверки.
- Удаляйте порт, скобки URI или суффикс CIDR только тогда, когда контракт вызывающей стороны допускает эти компоненты.
- Используйте
InetPtonили эквивалентный анализатор, учитывающий стандарты, а не считайте точки или двоеточия. - Для обратного DNS формируйте правильный запрос
in-addr.arpaилиip6.arpaтолько после успешного разбора адреса.
Ссылки
- Microsoft: InetPtonW
- RFC 4291: архитектура адресации IPv6
- RFC 3596: расширения DNS для поддержки IPv6
Нужно найти другой код? Найти другой код состояния или ошибки.
