Makro DnsValidateName (windns.h)

Fungsi DnsValidateName memvalidasi status nama DNS tertentu. Seperti banyak fungsi DNS, jenis fungsi DnsValidateName diimplementasikan dalam beberapa formulir untuk memfasilitasi pengodean karakter yang berbeda. Berdasarkan pengodean karakter yang terlibat, gunakan salah satu fungsi berikut:

  • DnsValidateName_A (_A untuk pengodean ANSI)
  • DnsValidateName_W (_W untuk pengodean Unicode)
  • DnsValidateName_UTF8 (_UTF8 untuk pengodean UTF-8)

Sintaks

void DnsValidateName(
   p,
   f
);

Parameter

p

TBD

f

TBD

Mengembalikan nilai

Tidak ada

Keterangan

Untuk memverifikasi status Host Komputer (label tunggal), gunakan jenis fungsi DnsValidateName dengan DnsNameHostnameLabel dalam Format.

Fungsi DnsValidateName berfungsi dalam perkembangan saat menentukan apakah ada kesalahan dengan nama DNS tertentu, dan kembali setelah menemukan kesalahan pertamanya. Oleh karena itu, nama DNS yang memiliki beberapa kesalahan yang berbeda dapat dilaporkan memiliki kesalahan pertama, dan dapat diperbaiki dan dikirim ulang, hanya untuk menemukan kesalahan kedua.

Fungsi DnsValidateName mencari kesalahan sebagai berikut:

  1. Mengembalikan ERROR_INVALID_NAME jika nama DNS:
    • Lebih panjang dari 255 oktet.
    • Berisi label yang lebih panjang dari 63 oktet.
    • Berisi dua titik atau lebih berturut-turut.
    • Dimulai dengan titik (.).
    • Berisi titik (.) jika nama dikirimkan dengan Format diatur ke DnsNameDomainLabel atau DnsNameHostnameLabel.
  2. Selanjutnya, DnsValidateName mengembalikan DNS_ERROR_NUMERIC_NAME jika nama DNS lengkap hanya terdiri dari karakter numerik (0-9) atau label pertama nama DNS hanya terdiri dari karakter numerik (0-9), kecuali Format diatur ke DnsNameDomainLabel atau DnsNameDomain.
  3. Kemudian, DnsValidateName mengembalikan DNS_ERROR_NON_RFC_NAME jika nama DNS:
    • Berisi setidaknya satu karakter yang diperluas atau Unicode. Catatan Windows 8 atau yang lebih baru: DnsValidateName_W tidak mengembalikan kesalahan jika pengodean Nama Domain Internasional (IDN) diaktifkan.
    • Berisi garis bawah (_), kecuali garis bawah adalah karakter pertama dalam label, dalam nama, dikirimkan dengan Format yang diatur ke DnsNameSrvRecord.
  4. Selanjutnya, DnsValidateName mengembalikan DNS_ERROR_INVALID_NAME_CHAR jika nama DNS:
    • Berisi spasi.
    • Berisi salah satu karakter yang tidak valid berikut: { | } ~ [ \ ] ^ ' : ; < = > ? & @ ! " # $ % ^ ` ( ) + / ,
    • Berisi tanda bintang (*), kecuali tanda bintang adalah label pertama dalam nama multilabel, dikirimkan dengan Format yang diatur ke DnsNameWildcard.
Catatan Jika DnsValidateName mengembalikan DNS_ERROR_NON_RFC_NAME, kesalahan harus ditangani sebagai peringatan bahwa tidak semua server DNS akan menerima nama tersebut. Ketika kesalahan ini diterima, perhatikan bahwa Server DNS menerima nama yang dikirimkan, jika dikonfigurasi dengan tepat (konfigurasi default menerima nama seperti yang dikirimkan saat DNS_ERROR_NON_RFC_NAME dikembalikan), tetapi perangkat lunak server DNS lainnya mungkin tidak. Server DNS Windows menangani NON_RFC_NAMES.

Jika DnsValidateName mengembalikan salah satu kesalahan berikut, pszName harus ditangani sebagai nama host yang tidak valid:

DNS_ERROR_NUMERIC_NAME
DNS_ERROR_INVALID_NAME_CHAR
ERROR_INVALID_NAME
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header windns.h
Pustaka Dnsapi.lib
DLL Dnsapi.dll

Lihat juga

DNS_NAME_FORMAT

DNS_RECORD

DnsNameCompare

DnsQuery