Condividi tramite


Funzione DnsValidateName_A (windns.h)

La funzione DnsValidateName convalida lo stato di un nome DNS specificato. Come molte funzioni DNS, il tipo di funzione DnsValidateName viene implementato in più moduli per facilitare la codifica di caratteri diversi. In base alla codifica dei caratteri coinvolta, usare una delle funzioni seguenti:

  • DnsValidateName_A (_A per la codifica ANSI)
  • DnsValidateName_W (_W per la codifica Unicode)
  • DnsValidateName_UTF8 (_UTF8 per la codifica UTF-8)

Sintassi

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

Parametri

[in] pszName

Puntatore a una stringa che rappresenta il nome DNS da esaminare.

[in] Format

Valore DNS_NAME_FORMAT che specifica il formato del nome da esaminare.

Valore restituito

La funzione DnsValidateName include i valori restituiti seguenti:

Commenti

Per verificare lo stato dell'host computer (singola etichetta), usare il tipo di funzione DnsValidateName con DnsNameHostnameLabel in Formato.

La funzione DnsValidateName funziona in una progressione quando si determina se esiste un errore con un nome DNS specificato e restituisce al primo errore. Pertanto, un nome DNS con più errori diversi può essere segnalato come avere il primo errore e potrebbe essere corretto e restituito, solo per trovare il secondo errore.

La funzione DnsValidateName cerca errori come indicato di seguito:

  1. Restituisce ERROR_INVALID_NAME se il nome DNS:
    • È più lungo di 255 ottetti.
    • Contiene un'etichetta più lunga di 63 ottetti.
    • Contiene due o più punti consecutivi.
    • Inizia con un punto (.).
    • Contiene un punto (.) se il nome viene inviato con Formato impostato su DnsNameDomainLabel o DnsNameHostnameLabel.
  2. DnsValidateName restituisce quindi DNS_ERROR_NUMERIC_NAME se il nome DNS completo è costituito da solo caratteri numerici (0-9) o la prima etichetta del nome DNS è costituita da solo caratteri numerici (0-9), a meno che Format non sia impostato su DnsNameDomainLabel o DnsNameDomain.
  3. DnsValidateName restituisce quindi DNS_ERROR_NON_RFC_NAME se il nome DNS:
    • Contiene almeno un carattere Unicode o esteso. Nota Windows 8 o versione successiva: DnsValidateName_W non restituisce un errore se la codifica IDN (International Domain Name) è abilitata.
    • Contiene il carattere di sottolineatura (_), a meno che il carattere di sottolineatura non sia un primo carattere in un'etichetta, nel nome, inviato con Formato impostato su DnsNameSrvRecord.
  4. DnsValidateName restituisce quindi DNS_ERROR_INVALID_NAME_CHAR se il nome DNS:
    • Contiene uno spazio.
    • Contiene uno dei caratteri non validi seguenti: { | } ~ [ \ ] ^ ' : ; < = > ? & @ ! " # $ % ^ ` ( ) + / ,
    • Contiene un asterisco (*), a meno che l'asterisco non sia la prima etichetta nel nome con etichetta multipla, inviata con Formato impostato su DnsNameWildcard.
Nota Se DnsValidateName restituisce DNS_ERROR_NON_RFC_NAME, l'errore deve essere gestito come avviso che non tutti i server DNS accetteranno il nome. Quando viene ricevuto questo errore, si noti che il server DNS accetta il nome inviato, se configurato in modo appropriato (la configurazione predefinita accetta il nome come inviato quando viene restituito DNS_ERROR_NON_RFC_NAME ), ma potrebbe non essere possibile che altri software del server DNS. I server DNS Windows gestiscono NON_RFC_NAMES.

Se DnsValidateName restituisce uno degli errori seguenti, pszName deve essere gestito come nome host non valido:

DNS_ERROR_NUMERIC_NAME
DNS_ERROR_INVALID_NAME_CHAR
ERROR_INVALID_NAME
 

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione windns.h
Libreria Dnsapi.lib
DLL Dnsapi.dll

Vedi anche

DNS_NAME_FORMAT

DNS_RECORD

DnsNameCompare

DnsQuery