次の方法で共有


DnsValidateName_A 関数 (windns.h)

DnsValidateName 関数は、指定された DNS 名の状態を検証します。 多くの DNS 関数と同様に、 DnsValidateName 関数の種類は、異なる文字エンコードを容易にするために複数の形式で実装されます。 関連する文字エンコードに基づいて、次のいずれかの関数を使用します。

  • DnsValidateName_A (ANSI エンコードの_A)
  • DnsValidateName_W (Unicode エンコードの_W)
  • DnsValidateName_UTF8 (UTF-8 エンコードの_UTF8)

構文

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

パラメーター

[in] pszName

調べる DNS 名を表す文字列へのポインター。

[in] Format

調べる名前の形式を指定するDNS_NAME_FORMAT値。

戻り値

DnsValidateName 関数には、次の可能な戻り値があります。

注釈

コンピューター ホスト (単一ラベル) の状態を確認するには、 DnsValidateName 関数の種類と DnsNameHostnameLabelFormat で使用します。

DnsValidateName 関数は、特定の DNS 名でエラーが存在するかどうかを判断するときに進行して動作し、最初のエラーが見つかったときに を返します。 したがって、複数の異なるエラーを含む DNS 名は、最初のエラーがあると報告される場合があり、2 番目のエラーを見つけるために修正して再送信することができます。

DnsValidateName 関数は、次のようにエラーを検索します。

  1. DNS 名 が次の場合ERROR_INVALID_NAME を返します。
    • 255 オクテットを超えています。
    • 63 オクテットより長いラベルが含まれています。
    • 2 つ以上の連続するドットを含みます。
    • ドット (.) で始まります。
    • 名前が DnsNameDomainLabel または DnsNameHostnameLabel に設定された 形式 で送信された場合は、ドット (.) が含まれます。
  2. 次に、完全な DNS 名が数字 (0 から 9) のみで構成されている場合、または DNS 名の最初のラベルが数字 (0 から 9) のみで構成されている場合、Format が DnsNameDomainLabel または DnsNameDomain に設定されていない場合、DnsValidateName はDNS_ERROR_NUMERIC_NAMEを返します。
  3. 次に、 DnsValidateName は、DNS 名が次の場合にDNS_ERROR_NON_RFC_NAMEを返します。
    • 少なくとも 1 つの拡張文字または Unicode 文字が含まれています。 Windows 8 以降: 国際ドメイン名 (IDN) エンコードが有効になっている場合、DnsValidateName_Wはエラーを返しません。
    • アンダースコア (_) を含みます。ただし、アンダースコアがラベルの最初の文字でない限り、名前に Format が DnsNameSrvRecord に設定された状態で送信されます。
  4. 次に、 DnsValidateName は、DNS 名 が次の場合にDNS_ERROR_INVALID_NAME_CHAR を返します。
    • スペースを含みます。
    • 次のいずれかの無効な文字が含まれています: { | } ~ [ \ ] ^ ' : ; < = > ? & @ ! " # $ % ^ ` ( ) + / ,
    • アスタリスク (*) を含みます。ただし、アスタリスクが複数ラベル付きの名前の最初のラベルでない限り、 FormatDnsNameWildcard に設定された状態で送信されます。
メモDnsValidateName がDNS_ERROR_NON_RFC_NAMEを返す場合は、すべての DNS サーバーが名前を受け入れるわけではないことを示す警告としてエラーを処理する必要があります。 このエラーが発生した場合、DNS サーバーは送信された名前を受け入れますが、適切に構成されている場合 (既定の構成 では、DNS_ERROR_NON_RFC_NAME が返されたときに送信された名前を受け入れます)、他の DNS サーバー ソフトウェアでは受け入れられない場合があることに注意してください。 Windows DNS サーバーは 、NON_RFC_NAMESを処理します。

DnsValidateName が次のいずれかのエラーを返す場合は、pszName を無効なホスト名として処理する必要があります。

DNS_ERROR_NUMERIC_NAME
DNS_ERROR_INVALID_NAME_CHAR
ERROR_INVALID_NAME
 

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー windns.h
Library Dnsapi.lib
[DLL] Dnsapi.dll

こちらもご覧ください

DNS_NAME_FORMAT

DNS_RECORD

DnsNameCompare

DnsQuery