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.