Freigeben über


DnsValidateName-Makro (windns.h)

Die funktion DnsValidateName überprüft den Status eines angegebenen DNS-Namens. Wie viele DNS-Funktionen wird der DnsValidateName Funktionstyp in mehreren Formen implementiert, um die unterschiedliche Zeichencodierung zu vereinfachen. Verwenden Sie basierend auf der verwendeten Zeichencodierung eine der folgenden Funktionen:

  • DnsValidateName_A (_A für die ANSI-Codierung)
  • DnsValidateName_W (_W für unicode-Codierung)
  • DnsValidateName_UTF8 (_UTF8 für UTF-8-Codierung)

Syntax

void DnsValidateName(
   p,
   f
);

Parameter

p

TBD

f

TBD

Rückgabewert

Nichts

Bemerkungen

Um den Status des Computerhosts (einzelne Bezeichnung) zu überprüfen, verwenden Sie den DnsValidateName Funktionstyp mit DnsNameHostnameLabel- in Format.

Die DnsValidateName Funktion funktioniert in einer Entwicklung, wenn ermittelt wird, ob ein Fehler mit einem bestimmten DNS-Namen vorhanden ist, und gibt nach dem Ermitteln des ersten Fehlers zurück. Daher kann ein DNS-Name, der mehrere, unterschiedliche Fehler hat, als den ersten Fehler gemeldet werden, und kann korrigiert und erneut übermittelt werden, nur um den zweiten Fehler zu finden.

Die DnsValidateName-Funktion sucht wie folgt nach Fehlern:

  1. Gibt ERROR_INVALID_NAME zurück, wenn der DNS-Name:
    • Ist länger als 255 Oktetten.
    • Enthält eine Beschriftung, die länger als 63 Oktetten ist.
    • Enthält mindestens zwei aufeinander folgende Punkte.
    • Beginnt mit einem Punkt (.).
    • Enthält einen Punkt (.), wenn der Name mit Format übermittelt wird, auf DnsNameDomainLabel oder DnsNameHostnameLabel festgelegt ist.
  2. Als Nächstes gibt DnsValidateNameDNS_ERROR_NUMERIC_NAME zurück, wenn der vollständige DNS-Name nur aus numerischen Zeichen (0-9) oder der ersten Bezeichnung des DNS-Namens besteht aus nur numerischen Zeichen (0-9), es sei denn, Format ist auf DnsNameDomainLabel oder DnsNameDomain festgelegt.
  3. Anschließend gibt DnsValidateName DNS_ERROR_NON_RFC_NAME zurück, wenn der DNS-Name:
    • Enthält mindestens ein erweitertes oder Unicode-Zeichen.Hinweis Windows 8 oder höher: DnsValidateName_W gibt keinen Fehler zurück, wenn die IDN-Codierung (International Domain Name) aktiviert ist.
    • Enthält Unterstrich (_), es sei denn, der Unterstrich ist ein erstes Zeichen in einer Bezeichnung, im Namen, übermittelt mit Format auf DnsNameSrvRecord festgelegt.
  4. Als Nächstes gibt DnsValidateNameDNS_ERROR_INVALID_NAME_CHAR zurück, wenn der DNS-Name:
    • Enthält ein Leerzeichen.
    • Enthält eines der folgenden ungültigen Zeichen: { | } ~ [ \ ] ^ ' : ; < = > ? & @ ! " # $ % ^ ' ( ) + / ,
    • Enthält ein Sternchen (*), es sei denn, das Sternchen ist die erste Bezeichnung im mehrbeschrifteten Namen, die mit Format übermittelt auf DnsNameWildcardfestgelegt ist.
Hinweis Wenn DnsValidateNameDNS_ERROR_NON_RFC_NAMEzurückgibt, sollte der Fehler als Warnung behandelt werden, dass nicht alle DNS-Server den Namen akzeptieren. Wenn dieser Fehler empfangen wird, beachten Sie, dass der DNS-Server den übermittelten Namen akzeptiert, sofern dies entsprechend konfiguriert ist (Die Standardkonfiguration akzeptiert den Namen wie übermittelt, wenn DNS_ERROR_NON_RFC_NAME zurückgegeben wird), andere DNS-Serversoftware darf jedoch nicht. Windows-DNS-Server behandeln NON_RFC_NAMES.

Wenn DnsValidateName einen der folgenden Fehler zurückgibt, sollte pszName- als ungültiger Hostname behandelt werden:

DNS_ERROR_NUMERIC_NAME
DNS_ERROR_INVALID_NAME_CHAR
ERROR_INVALID_NAME
 

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- windns.h
Library Dnsapi.lib
DLL- Dnsapi.dll

Siehe auch

DNS_NAME_FORMAT

DNS_RECORD

DnsNameCompare-

DnsQuery-