| Предыдущий | Следующий |
| DNS_ERROR_INVALID_NAME_CHAR | DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER |
DNS_ERROR_NUMERIC_NAME
Числовой текст может быть неоднозначным
DnsValidateName возвращает DNS_ERROR_NUMERIC_NAME, когда полное имя или его первая метка состоит только из цифр, за исключением некоторых форматов проверки, ориентированных на домены. Windows считает такой результат недопустимым именем узла. Правило предотвращает неоднозначный ввод, например предполагаемое имя узла, которое можно принять за адрес или специфичный для приложения номер.
Это не означает, что протокол DNS запрещает любую числовую метку. Решающее значение имеют выбранный DNS_NAME_FORMAT и намерение вызывающего кода. Приложение, проверяющее имя узла, не должно ослаблять проверку только потому, что доменный формат допускает более широкую грамматику.
Что исследовать
- Определите, является ли ввод IP-адресом, именем узла или общим доменным именем DNS.
- Если это адрес, разбирайте его API IP-адресов вместо проверки как имени узла.
- Если числовая метка является намеренными данными DNS, выберите документированный доменный формат и проверьте совместимость с авторитетным сервером.
- Сохраняйте ведущие нули и исходный текст в журналах; автоматическое числовое преобразование может скрыть значение, введённое пользователем.
Ссылки
- Microsoft: DnsValidateNameW
- Microsoft: DNS_NAME_FORMAT
- RFC 1123: требования к узлам и синтаксис имён
Нужно найти другой код? Найти другой код состояния или ошибки.