DnsZone yaratmak için (eğer WMI ile yapıcaksanız işi) System.Management namespace’ini kullanmalısınız.
Örneğin:
using System.Management;
....
public void ZoneYarat(string ZoneIsmi)
{
ManagementClass KayitSinif = new ManagementClass(@"ROOTMicrosoftDNS", "MicrosoftDNS_Zone", null);
ManagementBaseObject Parametreler = KayitSinif.GetMethodParameters("CreateZone");
InvokeMethodOptions options = new InvokeMethodOptions();
options.Timeout = new TimeSpan(0, 0, 0, 5);
Parametreler["ZoneName"] = ZoneIsmi;
Parametreler["ZoneType"] = 0; // Zone Tipini belirler 0 ForwardZone'dur.
ManagementBaseObject OutParams = KayitSinif.InvokeMethod("CreateZone", Parametreler, options);
}
Dns Zone’a bir DNS kaydı eklemek içinse aşağıdaki kod’u kullanabilirsiniz.
public void KayitYarat(string ZoneIsmi, string KayitText)
{
ManagementClass KayitSinif = new ManagementClass(@"rootMicrosoftDNS", "MicrosoftDNS_ResourceRecord", null);
ManagementBaseObject Parametreler = KayitSinif.GetMethodParameters("CreateInstanceFromTextRepresentation");
Parametreler["DnsServerName"] = null;
Parametreler["ContainerName"] = ZoneIsmi;
Parametreler["TextRepresentation"] = KayitText;
ManagementBaseObject outObject = KayitSinif.InvokeMethod("CreateInstanceFromTextRepresentation", Parametreler, null);
}
Bu kodun kullanımı şu şekildedir.
string AlanAdi = "oguzhan.info"; string KayitDegeri = "141.10.0.1; ZoneYarat(AlanAdi); KayitYarat(AlanAdi, AlanAdi + ". IN A " + KayitDegeri); KayitYarat(AlanAdi, "www." + AlanAdi + ". IN A " + KayitDegeri); KayitYarat(AlanAdi, "mail." + AlanAdi + ". IN CNAME " + AlanAdi); KayitYarat(AlanAdi, AlanAdi + " IN MX 10 mail." + AlanAdi + ".");
Not: Framework v2.0.50727 için geçerlidir.