in Eski Blog Yazılarım

WMI kullanarak C# ile Dns Zone Yaratmak!

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.

Yorum Bırak

Comment