Condividi tramite


funzione DnsValidateName_A (windns.h)

La funzione DnsValidateName convalida lo stato di un nome DNS specificato. Analogamente a molte funzioni DNS, il DnsValidateName tipo di funzione viene implementato in più forme per facilitare la codifica dei caratteri diversa. In base alla codifica dei caratteri interessata, 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:

Osservazioni

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

La funzione DnsValidateName funziona in modo progressivo quando si determina se esiste un errore con un nome DNS specificato e viene restituito dopo aver trovato il primo errore. Pertanto, un nome DNS con più errori diversi può essere segnalato come con il primo errore e potrebbe essere corretto e inviato di nuovo, solo per trovare il secondo errore.

La funzione DnsValidateName cerca gli errori nel modo seguente:

  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. Successivamente, DnsValidateName restituisce DNS_ERROR_NUMERIC_NAME se il nome DNS completo è costituito solo da caratteri numerici (0-9) o la prima etichetta del nome DNS è costituita solo da caratteri numerici (0-9), a meno che Format sia impostato su DnsNameDomainLabel o DnsNameDomain.
  3. Quindi, DnsValidateName restituisce DNS_ERROR_NON_RFC_NAME se il nome DNS:
    • Contiene almeno un carattere esteso o Unicode.Nota Windows 8 o versione successiva: DnsValidateName_W non restituisce un errore se è abilitata la codifica IDN (International Domain Name).
    • 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. Successivamente, DnsValidateName restituisce 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 inviato quando viene restituito DNS_ERROR_NON_RFC_NAME), ma è possibile che non venga restituito altro 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
 

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione windns.h
libreria Dnsapi.lib
dll Dnsapi.dll

Vedere anche

DNS_NAME_FORMAT

DNS_RECORD

DnsNameCompare

DnsQuery