Compartir a través de


Función DnsValidateName_UTF8 (windns.h)

La función DnsValidateName valida el estado de un nombre DNS especificado. Al igual que muchas funciones DNS, el tipo de función DnsValidateName se implementa en varios formularios para facilitar la codificación de caracteres diferente. En función de la codificación de caracteres implicada, use una de las siguientes funciones:

  • DnsValidateName_A (_A para la codificación ANSI)
  • DnsValidateName_W (_W para la codificación Unicode)
  • DnsValidateName_UTF8 (_UTF8 para la codificación UTF-8)

Sintaxis

DNS_STATUS DnsValidateName_UTF8(
  [in] PCSTR           pszName,
  [in] DNS_NAME_FORMAT Format
);

Parámetros

[in] pszName

Puntero a una cadena que representa el nombre DNS que se va a examinar.

[in] Format

Valor DNS_NAME_FORMAT que especifica el formato del nombre que se va a examinar.

Valor devuelto

La función DnsValidateName tiene los siguientes valores devueltos posibles:

Comentarios

Para comprobar el estado del host de equipo (etiqueta única), use el tipo de función DnsValidateName con DnsNameHostnameLabel en Formato.

La función DnsValidateName funciona en una progresión al determinar si existe un error con un nombre DNS determinado y vuelve al encontrar su primer error. Por lo tanto, un nombre DNS que tiene varios errores diferentes se puede notificar como que tiene el primer error, y se podría corregir y volver a enviar, solo entonces para encontrar el segundo error.

La función DnsValidateName busca errores de la siguiente manera:

  1. Devuelve ERROR_INVALID_NAME si el nombre DNS:
    • Es mayor que 255 octetos.
    • Contiene una etiqueta de más de 63 octetos.
    • Contiene dos o más puntos consecutivos.
    • Comienza con un punto (.).
    • Contiene un punto (.) si el nombre se envía con Format establecido en DnsNameDomainLabel o DnsNameHostnameLabel.
  2. A continuación, DnsValidateName devuelve DNS_ERROR_NUMERIC_NAME si el nombre DNS completo consta de solo caracteres numéricos (0-9) o la primera etiqueta del nombre DNS consta de solo caracteres numéricos (0-9), a menos que Format esté establecido en DnsNameDomainLabel o DnsNameDomain.
  3. A continuación, DnsValidateName devuelve DNS_ERROR_NON_RFC_NAME si el nombre DNS:
    • Contiene al menos un carácter Extendido o Unicode. Nota Windows 8 o posterior: DnsValidateName_W no devuelve un error si la codificación de nombre de dominio internacional (IDN) está habilitada.
    • Contiene el carácter de subrayado (_), a menos que el carácter de subrayado sea un primer carácter de una etiqueta, en el nombre, enviado con Format establecido en DnsNameSrvRecord.
  4. A continuación, DnsValidateName devuelve DNS_ERROR_INVALID_NAME_CHAR si el nombre DNS:
    • Contiene un espacio.
    • Contiene cualquiera de los siguientes caracteres no válidos: { | } ~ [ \ ] ^ ' : ; < = > ? & @ ! " # $ % ^ ` ( ) + / ,
    • Contiene un asterisco (*), a menos que el asterisco sea la primera etiqueta del nombre con varias etiquetas, enviada con formato establecido en DnsNameWildcard.
Nota Si DnsValidateName devuelve DNS_ERROR_NON_RFC_NAME, el error se debe controlar como una advertencia de que no todos los servidores DNS aceptarán el nombre. Cuando se recibe este error, tenga en cuenta que el servidor DNS acepta el nombre enviado, si está configurado correctamente (la configuración predeterminada acepta el nombre como enviado cuando se devuelve DNS_ERROR_NON_RFC_NAME ), pero es posible que no lo haga otro software de servidor DNS. Los servidores DNS de Windows controlan NON_RFC_NAMES.

Si DnsValidateName devuelve cualquiera de los siguientes errores, pszName debe controlarse como un nombre de host no válido:

DNS_ERROR_NUMERIC_NAME
DNS_ERROR_INVALID_NAME_CHAR
ERROR_INVALID_NAME
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado windns.h
Library Dnsapi.lib
Archivo DLL Dnsapi.dll

Consulte también

DNS_NAME_FORMAT

DNS_RECORD

DnsNameCompare

DnsQuery