/// <summary> /// 创建一个区域,包括其它参数 /// </summary> /// <param name="domain">要创建的区域名称</param> /// <param name="ZoneType">Type of zone. Valid values are the following:0 Primary zone. 1 Secondary zone. 2 Stub zone. 3 Zone forwarder. </param> /// <param name="DataFileName">[in, optional] Name of the data file associated with the zone</param> /// <param name="IpAddr">[in, optional] IP address of the mater DNS Server for the zone. </param> /// <param name="AdminEmailName">[in, optional] Email address of the administrator responsible for the zone</param> /// <returns></returns> public bool CreateZone(string domain, uint ZoneType, string DataFileName, string[] IpAddr, string AdminEmailName) { try { this.Create("MicrosoftDNS_Zone"); //如果区域已经存在 if (IsExistsZone(domain)) { errMessage = "域:" + domain + "已经存在."; return false; } //建立新的区域 MI = DnsClass.GetMethodParameters("CreateZone"); MI["ZoneName"] = domain; MI["ZoneType"] = ZoneType; MI["DataFileName"] = DataFileName; MI["IpAddr"] = IpAddr; MI["AdminEmailName"] = AdminEmailName; ManagementBaseObject OutParams = this.DnsClass.InvokeMethod("CreateZone", MI, null); errMessage = "域:" + domain + "创建成功."; return true; } catch (Exception e) { errMessage = e.Message; Console.WriteLine(e.ToString()); return false; }
}
/// <summary> /// 修改区域 /// </summary> /// <param name="domain">要修改的区域名称</param> /// <param name="ZoneType">Type of zone. Valid values are the following:0 Primary zone. 1 Secondary zone. 2 Stub zone. 3 Zone forwarder. </param> /// <param name="DataFileName">[in, optional] Name of the data file associated with the zone</param> /// <param name="IpAddr">[in, optional] IP address of the mater DNS Server for the zone. </param> /// <param name="AdminEmailName">[in, optional] Email address of the administrator responsible for the zone</param> /// <returns></returns> public bool ChangeZoneType(string domain, uint ZoneType, string DataFileName, string[] IpAddr, string AdminEmailName) { try { Q = QueryDNS("Select * From MicrosoftDNS_ZONE where ContainerName='" + domain + "'", "MicrosoftDNS_Zone");
/// <summary> /// 创建MicrosoftDNS_AType /// </summary> /// <param name="ContainerName">Name of the Container for the Zone, Cache, or RootHints instance which contains this RR</param> /// <param name="HostName">主机名 [如果为空或NULL,主机名将与域名保持一致.]</param> /// <param name="TTL">Time, in seconds, that the RR can be cached by a DNS resolver</param> /// <param name="IPAddress">String representing the IPv4 address of the host</param> /// <returns></returns> public bool CreateAType(string ContainerName, string HostName, string IPAddress,string TTL) { try { string OwnerName = null; if (string.IsNullOrEmpty(HostName)) { OwnerName = ContainerName; } else { OwnerName = HostName + "." + ContainerName; } this.Create("MicrosoftDNS_AType"); //如果区域不存在 if (!IsExistsZone(ContainerName)) { Console.WriteLine("区域:{0}不存在,创建失败", ContainerName); errMessage = string.Format("区域:{0}不存在,创建失败", ContainerName); return false; } if (IsExistsAType(ContainerName, OwnerName)) { Console.WriteLine("{0}中已存在{1},创建失败", ContainerName, OwnerName); errMessage = string.Format("{0}中已存在{1},创建失败", ContainerName, OwnerName); return false; } MI = DnsClass.GetMethodParameters("CreateInstanceFromPropertyData"); MI["DnsServerName"] = "localhost"; MI["ContainerName"] = ContainerName; MI["OwnerName"] = OwnerName; MI["IPAddress"] = IPAddress; if (string.IsNullOrEmpty(TTL)) { TTL = "3600"; } MI["TTL"] =TTL; DnsClass.InvokeMethod("CreateInstanceFromPropertyData", MI, null); errMessage = "A记录:" + OwnerName + "创建成功."; return true; } catch (Exception e) { errMessage = e.Message; Console.WriteLine(e.ToString()); return false; }
}
/// <summary> /// 创建MicrosoftDNS_AType /// </summary> /// <param name="DnsServerName">FQDN or IP address of the DNS Server that contains this RR</param> /// <param name="ContainerName">Name of the Container for the Zone, Cache, or RootHints instance which contains this RR</param> /// <param name="HostName">主机名 [如果为空或NULL,主机名将与域名保持一致.]</param> /// <param name="RecordClass">Class of the RR. Default value is 1. The following values are valid.1 IN (Internet) 2 CS (CSNET) 3 CH (CHAOS) 4 HS (Hesiod) </param> /// <param name="TTL">Time, in seconds, that the RR can be cached by a DNS resolver</param> /// <param name="IPAddress">String representing the IPv4 address of the host</param> /// <returns></returns> public bool CreateAType(string DnsServerName, string ContainerName, string HostName, uint RecordClass, uint TTL, string IPAddress) { try { string OwnerName = null; if (string.IsNullOrEmpty(HostName)) { OwnerName = ContainerName; } else { OwnerName = HostName + "." + ContainerName; } this.Create("MicrosoftDNS_AType"); //如果区域不存在 if (!IsExistsZone(ContainerName)) { Console.WriteLine("区域:{0}不存在,创建失败", ContainerName); errMessage = string.Format("区域:{0}不存在,创建失败", ContainerName); return false; } if (IsExistsAType(ContainerName, OwnerName)) { Console.WriteLine("{0}中已存在{1},创建失败", ContainerName, OwnerName); errMessage=string.Format("{0}中已存在{1},创建失败", ContainerName, OwnerName); return false; } MI = DnsClass.GetMethodParameters("CreateInstanceFromPropertyData"); MI["DnsServerName"] = DnsServerName; MI["ContainerName"] = ContainerName; MI["OwnerName"] = OwnerName; MI["RecordClass"] = RecordClass; MI["TTL"] = TTL; MI["IPAddress"] = IPAddress; DnsClass.InvokeMethod("CreateInstanceFromPropertyData", MI, null); errMessage = "A记录:" + OwnerName + "创建成功."; return true; } catch (Exception e) { errMessage = e.Message; Console.WriteLine(e.ToString()); return false; }
}
/// <summary> /// 修改MicrosoftDNS_AType /// </summary> /// <param name="ContainerName">Name of the Container for the Zone, Cache, or RootHints instance which contains this RR</param> /// <param name="HostName">主机名 [如果为空或NULL,主机名将与域名保持一致.]</param> /// <param name="TTL">Time, in seconds, that the RR can be cached by a DNS resolver</param> /// <param name="IPAddress"></param> /// <returns></returns> public bool ModifyAType(string ContainerName, string HostName, string IPAddress,string TTL) { try { string OwnerName = null; if (string.IsNullOrEmpty(HostName)) { OwnerName = ContainerName; } else { OwnerName = HostName + "." + ContainerName; }