private void btnLookUp_Click(object sender, EventArgs e) { //Lookup Resource Record, //Enter App in Wait State //Print Result, Exit if (txtHost.Text == null || txtHost.Text.Length == 0) { MessageBox.Show("Enter valid Host!"); txtHost.Focus(); return; } Application.DoEvents(); sbrResult.Text = "Please wait..."; this.Enabled = false; Application.DoEvents(); DnsQuery query = new DnsQuery(); query.Domain = txtHost.Text; query.DnsServer = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(txtDNS.Text.Trim()), 53); try { DnsAnswer answer = query.QueryServer(ParseEnumFromCombo()); if (answer != null) { DNS.frmDNSResult result = new ActiveUp.Net.Samples.Compact.DNS.frmDNSResult(); result.Output = answer; result.ShowDialog(); result.Dispose(); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } sbrResult.Text = "Ready"; this.Enabled = true; EnableControls(); Application.DoEvents(); }
/// <summary> /// Gets the RBL ip. /// </summary> /// <param name="rblServer">The RBL server.</param> /// <param name="ip">The ip.</param> /// <returns></returns> public IPAddress GetRblIp(string rblServer, IPAddress ip) { DnsQuery query = new DnsQuery("213.254.203.215"); byte[] addressBytes = ip.GetAddressBytes(); string domain = string.Format("{0}.{1}.{2}.{3}.{4}", addressBytes[3].ToString(), addressBytes[2].ToString(), addressBytes[1].ToString(), addressBytes[0].ToString(), rblServer); query.Domain = domain; DnsAnswer answer = query.QueryServer(RecordType.A); if (answer == null || answer.Answers.Count == 0) return null; string result = answer.Answers[0].Data.ToString().Replace("IP Address: ", ""); return IPAddress.Parse(result); }
/// <summary> /// Get the MX records for the specified domain name using the specified DNS server. /// </summary> /// <param name="address">The domain name.</param> /// <param name="host">The host name of the DNS server to use.</param> /// <param name="port">The port number of the DNS server to use.</param> /// <param name="timeout">The timeout in miliseconds.</param> /// <returns>A collection of Mx Records.</returns> public static ActiveUp.Net.Mail.MxRecordCollection GetMxRecords(string address, string host, int port, int timeout) { MxRecordCollection mxRecords = new MxRecordCollection(); DnsQuery query = new DnsQuery(IPAddress.Parse(host)); query.RecursiveQuery = true; query.DnsServer.Port = port; query.Domain = address; DnsAnswer answer = query.QueryServer(RecordType.MX, timeout); foreach (DnsEntry entry in answer.Answers) { MXRecord mxRecord = (MXRecord)entry.Data; mxRecords.Add(mxRecord.Domain, mxRecord.Preference); } return mxRecords; }