Updated
This commit is contained in:
parent
7379096bdd
commit
cd376044d5
|
@ -2,6 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
|
using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
@ -21,13 +22,26 @@ namespace EonaCat.DnsTester.Helpers
|
||||||
client.DontFragment = true;
|
client.DontFragment = true;
|
||||||
client.EnableBroadcast = false;
|
client.EnableBroadcast = false;
|
||||||
client.Client.ReceiveTimeout = DnsReceiveTimeout;
|
client.Client.ReceiveTimeout = DnsReceiveTimeout;
|
||||||
await client.SendAsync(queryBytes, queryBytes.Length, endPoint);
|
byte[] responseBytes = null;
|
||||||
var responseResult = await client.ReceiveAsync();
|
if (FakeResponse)
|
||||||
DnsResponse response = ParseDnsResponsePacket(dnsId, startTime, server, responseResult.Buffer);
|
{
|
||||||
|
responseBytes = DnsHelper.GetExampleResponse();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await client.SendAsync(queryBytes, queryBytes.Length, endPoint);
|
||||||
|
var responseResult = await client.ReceiveAsync();
|
||||||
|
responseBytes = responseResult.Buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
DnsResponse response = ParseDnsResponsePacket(dnsId, startTime, server, responseBytes);
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For testing purposes
|
||||||
|
public static bool FakeResponse { get; set; }
|
||||||
|
|
||||||
public static int DnsReceiveTimeout { get; set; } = 5;
|
public static int DnsReceiveTimeout { get; set; } = 5;
|
||||||
|
|
||||||
|
|
||||||
|
@ -84,7 +98,7 @@ namespace EonaCat.DnsTester.Helpers
|
||||||
static DnsQuestion ParseDnsQuestionRecord(byte[] queryBytes, ref int offset)
|
static DnsQuestion ParseDnsQuestionRecord(byte[] queryBytes, ref int offset)
|
||||||
{
|
{
|
||||||
// Parse the DNS name
|
// Parse the DNS name
|
||||||
string name = ParseDnsName(queryBytes, ref offset);
|
string name = DnsNameParser.ParseName(queryBytes, ref offset);
|
||||||
if (name == null)
|
if (name == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
|
@ -103,8 +117,38 @@ namespace EonaCat.DnsTester.Helpers
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static byte[] GetExampleResponse()
|
||||||
|
{
|
||||||
|
// Example response bytes for the A record of google.com
|
||||||
|
byte[] response = {
|
||||||
|
0x9d, 0xa9, // Query ID
|
||||||
|
0x81, 0x80, // Flags
|
||||||
|
0x00, 0x01, // Questions: 1
|
||||||
|
0x00, 0x01, // Answer RRs: 1
|
||||||
|
0x00, 0x00, // Authority RRs: 0
|
||||||
|
0x00, 0x00, // Additional RRs: 0
|
||||||
|
0x06, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, // Query: google
|
||||||
|
0x03, 0x63, 0x6f, 0x6d, // Query: com
|
||||||
|
0x00,
|
||||||
|
0x00, 0x01, // Record type: A
|
||||||
|
0x00, 0x01, // Record class: IN
|
||||||
|
0xc0, 0x0c, // Name pointer to google.com
|
||||||
|
0x00, 0x01, // Record type: A
|
||||||
|
0x00, 0x01, // Record class: IN
|
||||||
|
0x00, 0x00, 0x00, 0x3d, // TTL: 61 seconds
|
||||||
|
0x00, 0x04, // Data length: 4 bytes
|
||||||
|
0xac, 0xd9, 0x03, 0x3d // Data: 172.217.3.61
|
||||||
|
};
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
static DnsResponse ParseDnsResponsePacket(string dnsId, long startTime, string server, byte[] responseBytes)
|
static DnsResponse ParseDnsResponsePacket(string dnsId, long startTime, string server, byte[] responseBytes)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine("new byte[] { " + responseBytes + " }");
|
||||||
|
|
||||||
|
// Set the offset to the start
|
||||||
|
var offset = 0;
|
||||||
|
|
||||||
// Parse the DNS header
|
// Parse the DNS header
|
||||||
ushort id = (ushort)((responseBytes[0] << 8) | responseBytes[1]);
|
ushort id = (ushort)((responseBytes[0] << 8) | responseBytes[1]);
|
||||||
ushort flags = (ushort)((responseBytes[2] << 8) | responseBytes[3]);
|
ushort flags = (ushort)((responseBytes[2] << 8) | responseBytes[3]);
|
||||||
|
@ -112,19 +156,20 @@ namespace EonaCat.DnsTester.Helpers
|
||||||
ushort ancount = (ushort)((responseBytes[6] << 8) | responseBytes[7]);
|
ushort ancount = (ushort)((responseBytes[6] << 8) | responseBytes[7]);
|
||||||
ushort nscount = (ushort)((responseBytes[8] << 8) | responseBytes[9]);
|
ushort nscount = (ushort)((responseBytes[8] << 8) | responseBytes[9]);
|
||||||
ushort arcount = (ushort)((responseBytes[10] << 8) | responseBytes[11]);
|
ushort arcount = (ushort)((responseBytes[10] << 8) | responseBytes[11]);
|
||||||
|
|
||||||
|
// We parsed the header set the offset past the header
|
||||||
|
offset = 12;
|
||||||
|
|
||||||
List<DnsQuestion> questions = new List<DnsQuestion>();
|
List<DnsQuestion> questions = new List<DnsQuestion>();
|
||||||
|
|
||||||
//for (int i = 0; i < qdcount; i++)
|
for (int i = 0; i < qdcount; i++)
|
||||||
//{
|
{
|
||||||
// DnsQuestion question = ParseDnsQuestionRecord(responseBytes, ref offset);
|
DnsQuestion question = ParseDnsQuestionRecord(responseBytes, ref offset);
|
||||||
// if (question != null)
|
if (question != null)
|
||||||
// {
|
{
|
||||||
// questions.Add(question);
|
questions.Add(question);
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
|
|
||||||
int offset = 12;
|
|
||||||
|
|
||||||
// Parse the DNS answer records
|
// Parse the DNS answer records
|
||||||
List<ResourceRecord> answers = new List<ResourceRecord>();
|
List<ResourceRecord> answers = new List<ResourceRecord>();
|
||||||
|
@ -198,17 +243,17 @@ namespace EonaCat.DnsTester.Helpers
|
||||||
static ResourceRecord ParseDnsAnswerRecord(byte[] responseBytes, ref int offset)
|
static ResourceRecord ParseDnsAnswerRecord(byte[] responseBytes, ref int offset)
|
||||||
{
|
{
|
||||||
// Parse the DNS name
|
// Parse the DNS name
|
||||||
string name = ParseDnsName(responseBytes, ref offset);
|
string name = DnsNameParser.ParseName(responseBytes, ref offset);
|
||||||
if (name == null)
|
if (name == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse the DNS type, class, ttl, and data length
|
// Parse the DNS type, class, ttl, and data length
|
||||||
DnsRecordType type = (DnsRecordType)((responseBytes[offset++] << 8) | responseBytes[offset++]);
|
DnsRecordType type = (DnsRecordType)((responseBytes[offset] << 8) | responseBytes[offset++]);
|
||||||
DnsRecordClass klass = (DnsRecordClass)((responseBytes[offset++] << 8) | responseBytes[offset++]);
|
DnsRecordClass klass = (DnsRecordClass)((responseBytes[offset] << 8) | responseBytes[offset++]);
|
||||||
uint ttl = (uint)((responseBytes[offset++] << 24) | (responseBytes[offset++] << 16) | (responseBytes[offset++] << 8) | responseBytes[offset++]);
|
uint ttl = (uint)((responseBytes[offset] << 24) | (responseBytes[offset++] << 16) | (responseBytes[offset++] << 8) | responseBytes[offset++]);
|
||||||
ushort rdlen = (ushort)((responseBytes[responseBytes.Length - 5]));
|
ushort rdlen = (ushort)((responseBytes[offset] << 8) + responseBytes[offset++]);
|
||||||
offset += 10;
|
offset += 10;
|
||||||
|
|
||||||
// Parse the DNS data
|
// Parse the DNS data
|
||||||
|
@ -230,7 +275,7 @@ namespace EonaCat.DnsTester.Helpers
|
||||||
break;
|
break;
|
||||||
case DnsRecordType.CNAME:
|
case DnsRecordType.CNAME:
|
||||||
case DnsRecordType.NS:
|
case DnsRecordType.NS:
|
||||||
data = ParseDnsName(responseBytes, ref offset);
|
data = DnsNameParser.ParseName(responseBytes, ref offset);
|
||||||
if (data == null)
|
if (data == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
|
@ -240,7 +285,7 @@ namespace EonaCat.DnsTester.Helpers
|
||||||
case DnsRecordType.MX:
|
case DnsRecordType.MX:
|
||||||
ushort preference = (ushort)((responseBytes[offset] << 8) | responseBytes[offset + 1]);
|
ushort preference = (ushort)((responseBytes[offset] << 8) | responseBytes[offset + 1]);
|
||||||
offset += 2;
|
offset += 2;
|
||||||
string exchange = ParseDnsName(responseBytes, ref offset);
|
string exchange = DnsNameParser.ParseName(responseBytes, ref offset);
|
||||||
if (exchange == null)
|
if (exchange == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
|
@ -267,60 +312,15 @@ namespace EonaCat.DnsTester.Helpers
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
static string ParseDnsName(byte[] responseBytes, ref int offset)
|
static string GetString(byte[] bytes, ref int index, int length)
|
||||||
{
|
{
|
||||||
StringBuilder name = new StringBuilder();
|
string str = "";
|
||||||
int originalOffset = offset;
|
for (int i = 0; i < length; i++)
|
||||||
while (true)
|
|
||||||
{
|
{
|
||||||
byte len = responseBytes[offset++];
|
str += (char)bytes[index++];
|
||||||
if (len == 0)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((len & 0xc0) == 0xc0)
|
|
||||||
{
|
|
||||||
ushort pointer = (ushort)(((len & 0x3f) << 8) | responseBytes[offset++]);
|
|
||||||
int pointerOffset = pointer & 0x3fff;
|
|
||||||
if (pointerOffset >= responseBytes.Length)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
int pointerEnd = offset;
|
|
||||||
offset = pointerOffset;
|
|
||||||
if (offset < originalOffset)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
name.Append(ParseDnsName(responseBytes, ref offset));
|
|
||||||
offset = pointerEnd;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (len > 63)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
name.Append(Encoding.ASCII.GetString(responseBytes, offset, len));
|
|
||||||
offset += len;
|
|
||||||
if (responseBytes[offset - 1] != 0)
|
|
||||||
{
|
|
||||||
name.Append(".");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return str;
|
||||||
if (originalOffset == offset)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return name.ToString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class DnsQuestion
|
public class DnsQuestion
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace EonaCat.DnsTester.Helpers
|
||||||
|
{
|
||||||
|
public class DnsNameParser
|
||||||
|
{
|
||||||
|
public static string ParseName(byte[] responseBytes, ref int offset)
|
||||||
|
{
|
||||||
|
List<string> labels = new List<string>();
|
||||||
|
int length;
|
||||||
|
|
||||||
|
while ((length = responseBytes[offset++]) != 0)
|
||||||
|
{
|
||||||
|
if ((length & 0xC0) == 0xC0)
|
||||||
|
{
|
||||||
|
// The name is compressed
|
||||||
|
int pointer = ((length & 0x3F) << 8) | responseBytes[offset++];
|
||||||
|
int savedOffset = offset;
|
||||||
|
offset = pointer;
|
||||||
|
labels.AddRange(ParseName(responseBytes, ref offset).Split('.'));
|
||||||
|
offset = savedOffset;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The name is not compressed
|
||||||
|
labels.Add(System.Text.Encoding.ASCII.GetString(responseBytes, offset, length));
|
||||||
|
offset += length;
|
||||||
|
}
|
||||||
|
|
||||||
|
return string.Join(".", labels);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,9 +3,7 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using System.Text;
|
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace EonaCat.DnsTester.Helpers
|
namespace EonaCat.DnsTester.Helpers
|
||||||
{
|
{
|
||||||
|
@ -32,9 +30,9 @@ namespace EonaCat.DnsTester.Helpers
|
||||||
|
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
|
|
||||||
List<string> localCleanNames = urlList;
|
List<string> urls = urlList;
|
||||||
|
|
||||||
while (localCleanNames.Count < totalUrls)
|
while (urls.Count < totalUrls)
|
||||||
{
|
{
|
||||||
int index = rand.Next(searchEngineUrls.Count);
|
int index = rand.Next(searchEngineUrls.Count);
|
||||||
KeyValuePair<string, string> searchEngine = searchEngineUrls.ElementAt(index);
|
KeyValuePair<string, string> searchEngine = searchEngineUrls.ElementAt(index);
|
||||||
|
@ -64,14 +62,14 @@ namespace EonaCat.DnsTester.Helpers
|
||||||
// Add the names to the list
|
// Add the names to the list
|
||||||
foreach (string name in uniqueNames)
|
foreach (string name in uniqueNames)
|
||||||
{
|
{
|
||||||
if (localCleanNames.Count >= totalUrls)
|
if (urls.Count >= totalUrls)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!localCleanNames.Contains(name))
|
if (!urls.Contains(name))
|
||||||
{
|
{
|
||||||
localCleanNames.Add(name);
|
urls.Add(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,8 +85,9 @@ namespace EonaCat.DnsTester.Helpers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
urlList = localCleanNames; // Update the reference to the list
|
urlList = urls;
|
||||||
SetStatus($"{urlList.Count} Random URL's found");
|
var urlText = "url" + (urlList.Count > 1 ? "'s" : string.Empty);
|
||||||
|
SetStatus($"{urlList.Count} random {urlText} found");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetRandomLetters()
|
private static string GetRandomLetters()
|
||||||
|
|
|
@ -29,56 +29,266 @@
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||||
ResultView = new System.Windows.Forms.ListView();
|
|
||||||
WebName = new System.Windows.Forms.ColumnHeader();
|
|
||||||
DNS1IP = new System.Windows.Forms.ColumnHeader();
|
|
||||||
DNS1Timing = new System.Windows.Forms.ColumnHeader();
|
|
||||||
DNS2IP = new System.Windows.Forms.ColumnHeader();
|
|
||||||
DNS2Timing = new System.Windows.Forms.ColumnHeader();
|
|
||||||
RunTest = new System.Windows.Forms.Button();
|
RunTest = new System.Windows.Forms.Button();
|
||||||
lblDns1 = new System.Windows.Forms.Label();
|
panel1 = new System.Windows.Forms.Panel();
|
||||||
lblDns2 = new System.Windows.Forms.Label();
|
|
||||||
dnsList1 = new System.Windows.Forms.ComboBox();
|
|
||||||
dnsList2 = new System.Windows.Forms.ComboBox();
|
|
||||||
UseCustomServers = new System.Windows.Forms.CheckBox();
|
|
||||||
lblCustom1 = new System.Windows.Forms.Label();
|
|
||||||
lblCustom2 = new System.Windows.Forms.Label();
|
|
||||||
CustomDns1 = new System.Windows.Forms.TextBox();
|
|
||||||
CustomDns2 = new System.Windows.Forms.TextBox();
|
|
||||||
lslStatus = new System.Windows.Forms.Label();
|
|
||||||
StatusBox = new System.Windows.Forms.ListBox();
|
|
||||||
chkDns1 = new System.Windows.Forms.CheckBox();
|
|
||||||
chkDns2 = new System.Windows.Forms.CheckBox();
|
|
||||||
label1 = new System.Windows.Forms.Label();
|
|
||||||
label2 = new System.Windows.Forms.Label();
|
|
||||||
txtResolveIP = new System.Windows.Forms.TextBox();
|
|
||||||
txtResolveHost = new System.Windows.Forms.TextBox();
|
|
||||||
btnResolveIP = new System.Windows.Forms.Button();
|
|
||||||
btnResolveHost = new System.Windows.Forms.Button();
|
|
||||||
label3 = new System.Windows.Forms.Label();
|
|
||||||
numericUpDown1 = new System.Windows.Forms.NumericUpDown();
|
|
||||||
comboBox1 = new System.Windows.Forms.ComboBox();
|
comboBox1 = new System.Windows.Forms.ComboBox();
|
||||||
|
numericUpDown1 = new System.Windows.Forms.NumericUpDown();
|
||||||
|
label3 = new System.Windows.Forms.Label();
|
||||||
|
chkDns2 = new System.Windows.Forms.CheckBox();
|
||||||
|
chkDns1 = new System.Windows.Forms.CheckBox();
|
||||||
|
CustomDns2 = new System.Windows.Forms.TextBox();
|
||||||
|
CustomDns1 = new System.Windows.Forms.TextBox();
|
||||||
|
lblCustom2 = new System.Windows.Forms.Label();
|
||||||
|
lblCustom1 = new System.Windows.Forms.Label();
|
||||||
|
UseCustomServers = new System.Windows.Forms.CheckBox();
|
||||||
|
dnsList2 = new System.Windows.Forms.ComboBox();
|
||||||
|
dnsList1 = new System.Windows.Forms.ComboBox();
|
||||||
|
lblDns2 = new System.Windows.Forms.Label();
|
||||||
|
lblDns1 = new System.Windows.Forms.Label();
|
||||||
|
panel2 = new System.Windows.Forms.Panel();
|
||||||
|
StatusBox = new System.Windows.Forms.ListBox();
|
||||||
|
ResultView = new System.Windows.Forms.ListView();
|
||||||
|
Url = new System.Windows.Forms.ColumnHeader();
|
||||||
|
DNS1IP = new System.Windows.Forms.ColumnHeader();
|
||||||
|
DNS1Performance = new System.Windows.Forms.ColumnHeader();
|
||||||
|
DNS2IP = new System.Windows.Forms.ColumnHeader();
|
||||||
|
DNS2Performance = new System.Windows.Forms.ColumnHeader();
|
||||||
|
panel3 = new System.Windows.Forms.Panel();
|
||||||
|
btnResolveHost = new System.Windows.Forms.Button();
|
||||||
|
btnResolveIP = new System.Windows.Forms.Button();
|
||||||
|
txtResolveHost = new System.Windows.Forms.TextBox();
|
||||||
|
txtResolveIP = new System.Windows.Forms.TextBox();
|
||||||
|
label5 = new System.Windows.Forms.Label();
|
||||||
|
label1 = new System.Windows.Forms.Label();
|
||||||
|
panel1.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)numericUpDown1).BeginInit();
|
((System.ComponentModel.ISupportInitialize)numericUpDown1).BeginInit();
|
||||||
|
panel2.SuspendLayout();
|
||||||
|
panel3.SuspendLayout();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
|
// RunTest
|
||||||
|
//
|
||||||
|
RunTest.BackColor = System.Drawing.Color.FromArgb(192, 255, 192);
|
||||||
|
RunTest.Location = new System.Drawing.Point(1068, 1539);
|
||||||
|
RunTest.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
||||||
|
RunTest.Name = "RunTest";
|
||||||
|
RunTest.Size = new System.Drawing.Size(435, 115);
|
||||||
|
RunTest.TabIndex = 12;
|
||||||
|
RunTest.Text = "Run Test";
|
||||||
|
RunTest.UseVisualStyleBackColor = false;
|
||||||
|
RunTest.Click += RunTest_Click;
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
panel1.BackColor = System.Drawing.SystemColors.ControlLight;
|
||||||
|
panel1.Controls.Add(comboBox1);
|
||||||
|
panel1.Controls.Add(numericUpDown1);
|
||||||
|
panel1.Controls.Add(label3);
|
||||||
|
panel1.Controls.Add(chkDns2);
|
||||||
|
panel1.Controls.Add(chkDns1);
|
||||||
|
panel1.Controls.Add(CustomDns2);
|
||||||
|
panel1.Controls.Add(CustomDns1);
|
||||||
|
panel1.Controls.Add(lblCustom2);
|
||||||
|
panel1.Controls.Add(lblCustom1);
|
||||||
|
panel1.Controls.Add(UseCustomServers);
|
||||||
|
panel1.Controls.Add(dnsList2);
|
||||||
|
panel1.Controls.Add(dnsList1);
|
||||||
|
panel1.Controls.Add(lblDns2);
|
||||||
|
panel1.Controls.Add(lblDns1);
|
||||||
|
panel1.Location = new System.Drawing.Point(155, 294);
|
||||||
|
panel1.Name = "panel1";
|
||||||
|
panel1.Size = new System.Drawing.Size(2209, 396);
|
||||||
|
panel1.TabIndex = 24;
|
||||||
|
//
|
||||||
|
// comboBox1
|
||||||
|
//
|
||||||
|
comboBox1.FormattingEnabled = true;
|
||||||
|
comboBox1.Items.AddRange(new object[] { "A", "NS", "CNAME", "MX", "TXT" });
|
||||||
|
comboBox1.Location = new System.Drawing.Point(1583, 71);
|
||||||
|
comboBox1.Name = "comboBox1";
|
||||||
|
comboBox1.Size = new System.Drawing.Size(302, 49);
|
||||||
|
comboBox1.TabIndex = 59;
|
||||||
|
comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged;
|
||||||
|
//
|
||||||
|
// numericUpDown1
|
||||||
|
//
|
||||||
|
numericUpDown1.Location = new System.Drawing.Point(804, 147);
|
||||||
|
numericUpDown1.Maximum = new decimal(new int[] { 1000000000, 0, 0, 0 });
|
||||||
|
numericUpDown1.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
|
||||||
|
numericUpDown1.Name = "numericUpDown1";
|
||||||
|
numericUpDown1.Size = new System.Drawing.Size(120, 47);
|
||||||
|
numericUpDown1.TabIndex = 58;
|
||||||
|
numericUpDown1.Value = new decimal(new int[] { 20, 0, 0, 0 });
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
label3.AutoSize = true;
|
||||||
|
label3.Location = new System.Drawing.Point(566, 147);
|
||||||
|
label3.Name = "label3";
|
||||||
|
label3.Size = new System.Drawing.Size(210, 41);
|
||||||
|
label3.TabIndex = 57;
|
||||||
|
label3.Text = "Total domains:";
|
||||||
|
//
|
||||||
|
// chkDns2
|
||||||
|
//
|
||||||
|
chkDns2.AutoSize = true;
|
||||||
|
chkDns2.Checked = true;
|
||||||
|
chkDns2.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
chkDns2.Location = new System.Drawing.Point(1071, 147);
|
||||||
|
chkDns2.Name = "chkDns2";
|
||||||
|
chkDns2.Size = new System.Drawing.Size(251, 45);
|
||||||
|
chkDns2.TabIndex = 45;
|
||||||
|
chkDns2.Text = "Test dns server";
|
||||||
|
chkDns2.UseVisualStyleBackColor = true;
|
||||||
|
chkDns2.CheckedChanged += chkDns2_CheckedChanged;
|
||||||
|
//
|
||||||
|
// chkDns1
|
||||||
|
//
|
||||||
|
chkDns1.AutoSize = true;
|
||||||
|
chkDns1.Checked = true;
|
||||||
|
chkDns1.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
chkDns1.Location = new System.Drawing.Point(46, 147);
|
||||||
|
chkDns1.Name = "chkDns1";
|
||||||
|
chkDns1.Size = new System.Drawing.Size(251, 45);
|
||||||
|
chkDns1.TabIndex = 44;
|
||||||
|
chkDns1.Text = "Test dns server";
|
||||||
|
chkDns1.UseVisualStyleBackColor = true;
|
||||||
|
chkDns1.CheckedChanged += chkDns1_CheckedChanged;
|
||||||
|
//
|
||||||
|
// CustomDns2
|
||||||
|
//
|
||||||
|
CustomDns2.Enabled = false;
|
||||||
|
CustomDns2.Location = new System.Drawing.Point(1318, 297);
|
||||||
|
CustomDns2.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
||||||
|
CustomDns2.Name = "CustomDns2";
|
||||||
|
CustomDns2.Size = new System.Drawing.Size(668, 47);
|
||||||
|
CustomDns2.TabIndex = 43;
|
||||||
|
CustomDns2.Visible = false;
|
||||||
|
//
|
||||||
|
// CustomDns1
|
||||||
|
//
|
||||||
|
CustomDns1.BackColor = System.Drawing.Color.White;
|
||||||
|
CustomDns1.Enabled = false;
|
||||||
|
CustomDns1.Location = new System.Drawing.Point(299, 291);
|
||||||
|
CustomDns1.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
||||||
|
CustomDns1.Name = "CustomDns1";
|
||||||
|
CustomDns1.Size = new System.Drawing.Size(625, 47);
|
||||||
|
CustomDns1.TabIndex = 42;
|
||||||
|
CustomDns1.Visible = false;
|
||||||
|
//
|
||||||
|
// lblCustom2
|
||||||
|
//
|
||||||
|
lblCustom2.AutoSize = true;
|
||||||
|
lblCustom2.Location = new System.Drawing.Point(1065, 301);
|
||||||
|
lblCustom2.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0);
|
||||||
|
lblCustom2.Name = "lblCustom2";
|
||||||
|
lblCustom2.Size = new System.Drawing.Size(219, 41);
|
||||||
|
lblCustom2.TabIndex = 41;
|
||||||
|
lblCustom2.Text = "Custom Dns 2: ";
|
||||||
|
lblCustom2.Visible = false;
|
||||||
|
//
|
||||||
|
// lblCustom1
|
||||||
|
//
|
||||||
|
lblCustom1.AutoSize = true;
|
||||||
|
lblCustom1.Location = new System.Drawing.Point(46, 295);
|
||||||
|
lblCustom1.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0);
|
||||||
|
lblCustom1.Name = "lblCustom1";
|
||||||
|
lblCustom1.Size = new System.Drawing.Size(219, 41);
|
||||||
|
lblCustom1.TabIndex = 40;
|
||||||
|
lblCustom1.Text = "Custom Dns 1: ";
|
||||||
|
lblCustom1.Visible = false;
|
||||||
|
//
|
||||||
|
// UseCustomServers
|
||||||
|
//
|
||||||
|
UseCustomServers.AutoSize = true;
|
||||||
|
UseCustomServers.Location = new System.Drawing.Point(1723, 147);
|
||||||
|
UseCustomServers.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
||||||
|
UseCustomServers.Name = "UseCustomServers";
|
||||||
|
UseCustomServers.Size = new System.Drawing.Size(262, 45);
|
||||||
|
UseCustomServers.TabIndex = 39;
|
||||||
|
UseCustomServers.Text = "Custom Servers";
|
||||||
|
UseCustomServers.UseVisualStyleBackColor = true;
|
||||||
|
UseCustomServers.CheckedChanged += UseCustomServers_CheckedChanged;
|
||||||
|
//
|
||||||
|
// dnsList2
|
||||||
|
//
|
||||||
|
dnsList2.FormattingEnabled = true;
|
||||||
|
dnsList2.ItemHeight = 41;
|
||||||
|
dnsList2.Location = new System.Drawing.Point(1181, 71);
|
||||||
|
dnsList2.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
||||||
|
dnsList2.Name = "dnsList2";
|
||||||
|
dnsList2.Size = new System.Drawing.Size(320, 49);
|
||||||
|
dnsList2.TabIndex = 38;
|
||||||
|
//
|
||||||
|
// dnsList1
|
||||||
|
//
|
||||||
|
dnsList1.FormattingEnabled = true;
|
||||||
|
dnsList1.ItemHeight = 41;
|
||||||
|
dnsList1.Location = new System.Drawing.Point(168, 71);
|
||||||
|
dnsList1.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
||||||
|
dnsList1.Name = "dnsList1";
|
||||||
|
dnsList1.Size = new System.Drawing.Size(451, 49);
|
||||||
|
dnsList1.TabIndex = 37;
|
||||||
|
//
|
||||||
|
// lblDns2
|
||||||
|
//
|
||||||
|
lblDns2.AutoSize = true;
|
||||||
|
lblDns2.Location = new System.Drawing.Point(1065, 79);
|
||||||
|
lblDns2.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0);
|
||||||
|
lblDns2.Name = "lblDns2";
|
||||||
|
lblDns2.Size = new System.Drawing.Size(100, 41);
|
||||||
|
lblDns2.TabIndex = 36;
|
||||||
|
lblDns2.Text = "Dns 2:";
|
||||||
|
//
|
||||||
|
// lblDns1
|
||||||
|
//
|
||||||
|
lblDns1.AutoSize = true;
|
||||||
|
lblDns1.Location = new System.Drawing.Point(46, 79);
|
||||||
|
lblDns1.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0);
|
||||||
|
lblDns1.Name = "lblDns1";
|
||||||
|
lblDns1.Size = new System.Drawing.Size(100, 41);
|
||||||
|
lblDns1.TabIndex = 35;
|
||||||
|
lblDns1.Text = "Dns 1:";
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
panel2.BackColor = System.Drawing.SystemColors.ControlLight;
|
||||||
|
panel2.Controls.Add(StatusBox);
|
||||||
|
panel2.Controls.Add(ResultView);
|
||||||
|
panel2.Location = new System.Drawing.Point(145, 765);
|
||||||
|
panel2.Name = "panel2";
|
||||||
|
panel2.Size = new System.Drawing.Size(2219, 745);
|
||||||
|
panel2.TabIndex = 25;
|
||||||
|
//
|
||||||
|
// StatusBox
|
||||||
|
//
|
||||||
|
StatusBox.FormattingEnabled = true;
|
||||||
|
StatusBox.HorizontalScrollbar = true;
|
||||||
|
StatusBox.ItemHeight = 41;
|
||||||
|
StatusBox.Location = new System.Drawing.Point(56, 571);
|
||||||
|
StatusBox.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
||||||
|
StatusBox.Name = "StatusBox";
|
||||||
|
StatusBox.Size = new System.Drawing.Size(2126, 127);
|
||||||
|
StatusBox.TabIndex = 25;
|
||||||
|
//
|
||||||
// ResultView
|
// ResultView
|
||||||
//
|
//
|
||||||
ResultView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { WebName, DNS1IP, DNS1Timing, DNS2IP, DNS2Timing });
|
ResultView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { Url, DNS1IP, DNS1Performance, DNS2IP, DNS2Performance });
|
||||||
ResultView.GridLines = true;
|
ResultView.GridLines = true;
|
||||||
ResultView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
ResultView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||||
ResultView.Location = new System.Drawing.Point(155, 469);
|
ResultView.Location = new System.Drawing.Point(56, 49);
|
||||||
ResultView.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
ResultView.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
||||||
ResultView.MultiSelect = false;
|
ResultView.MultiSelect = false;
|
||||||
ResultView.Name = "ResultView";
|
ResultView.Name = "ResultView";
|
||||||
ResultView.Size = new System.Drawing.Size(2209, 663);
|
ResultView.Size = new System.Drawing.Size(2126, 487);
|
||||||
ResultView.TabIndex = 11;
|
ResultView.TabIndex = 24;
|
||||||
ResultView.UseCompatibleStateImageBehavior = false;
|
ResultView.UseCompatibleStateImageBehavior = false;
|
||||||
ResultView.View = System.Windows.Forms.View.Details;
|
ResultView.View = System.Windows.Forms.View.Details;
|
||||||
//
|
//
|
||||||
// WebName
|
// Url
|
||||||
//
|
//
|
||||||
WebName.Text = "URL";
|
Url.Text = "URL";
|
||||||
WebName.Width = 160;
|
Url.Width = 160;
|
||||||
//
|
//
|
||||||
// DNS1IP
|
// DNS1IP
|
||||||
//
|
//
|
||||||
|
@ -86,11 +296,11 @@
|
||||||
DNS1IP.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
DNS1IP.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||||
DNS1IP.Width = 140;
|
DNS1IP.Width = 140;
|
||||||
//
|
//
|
||||||
// DNS1Timing
|
// DNS1Performance
|
||||||
//
|
//
|
||||||
DNS1Timing.Text = "DNS 1 Timing";
|
DNS1Performance.Text = "DNS 1 Performance";
|
||||||
DNS1Timing.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
DNS1Performance.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||||
DNS1Timing.Width = 120;
|
DNS1Performance.Width = 120;
|
||||||
//
|
//
|
||||||
// DNS2IP
|
// DNS2IP
|
||||||
//
|
//
|
||||||
|
@ -98,242 +308,77 @@
|
||||||
DNS2IP.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
DNS2IP.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||||
DNS2IP.Width = 140;
|
DNS2IP.Width = 140;
|
||||||
//
|
//
|
||||||
// DNS2Timing
|
// DNS2Performance
|
||||||
//
|
//
|
||||||
DNS2Timing.Text = "DNS 2 Timing";
|
DNS2Performance.Text = "DNS 2 Performance";
|
||||||
DNS2Timing.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
DNS2Performance.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||||
DNS2Timing.Width = 120;
|
DNS2Performance.Width = 120;
|
||||||
//
|
//
|
||||||
// RunTest
|
// panel3
|
||||||
//
|
//
|
||||||
RunTest.Location = new System.Drawing.Point(1131, 1152);
|
panel3.BackColor = System.Drawing.SystemColors.ControlLight;
|
||||||
RunTest.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
panel3.Controls.Add(btnResolveHost);
|
||||||
RunTest.Name = "RunTest";
|
panel3.Controls.Add(btnResolveIP);
|
||||||
RunTest.Size = new System.Drawing.Size(200, 55);
|
panel3.Controls.Add(txtResolveHost);
|
||||||
RunTest.TabIndex = 12;
|
panel3.Controls.Add(txtResolveIP);
|
||||||
RunTest.Text = "Run Test";
|
panel3.Controls.Add(label5);
|
||||||
RunTest.Click += RunTest_Click;
|
panel3.Controls.Add(label1);
|
||||||
//
|
panel3.Location = new System.Drawing.Point(155, 45);
|
||||||
// lblDns1
|
panel3.Name = "panel3";
|
||||||
//
|
panel3.Size = new System.Drawing.Size(2209, 175);
|
||||||
lblDns1.AutoSize = true;
|
panel3.TabIndex = 26;
|
||||||
lblDns1.Location = new System.Drawing.Point(155, 167);
|
|
||||||
lblDns1.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0);
|
|
||||||
lblDns1.Name = "lblDns1";
|
|
||||||
lblDns1.Size = new System.Drawing.Size(100, 41);
|
|
||||||
lblDns1.TabIndex = 13;
|
|
||||||
lblDns1.Text = "Dns 1:";
|
|
||||||
//
|
|
||||||
// lblDns2
|
|
||||||
//
|
|
||||||
lblDns2.AutoSize = true;
|
|
||||||
lblDns2.Location = new System.Drawing.Point(1174, 173);
|
|
||||||
lblDns2.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0);
|
|
||||||
lblDns2.Name = "lblDns2";
|
|
||||||
lblDns2.Size = new System.Drawing.Size(100, 41);
|
|
||||||
lblDns2.TabIndex = 14;
|
|
||||||
lblDns2.Text = "Dns 2:";
|
|
||||||
//
|
|
||||||
// dnsList1
|
|
||||||
//
|
|
||||||
dnsList1.FormattingEnabled = true;
|
|
||||||
dnsList1.ItemHeight = 41;
|
|
||||||
dnsList1.Location = new System.Drawing.Point(277, 155);
|
|
||||||
dnsList1.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
|
||||||
dnsList1.Name = "dnsList1";
|
|
||||||
dnsList1.Size = new System.Drawing.Size(756, 49);
|
|
||||||
dnsList1.TabIndex = 15;
|
|
||||||
//
|
|
||||||
// dnsList2
|
|
||||||
//
|
|
||||||
dnsList2.FormattingEnabled = true;
|
|
||||||
dnsList2.ItemHeight = 41;
|
|
||||||
dnsList2.Location = new System.Drawing.Point(1307, 161);
|
|
||||||
dnsList2.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
|
||||||
dnsList2.Name = "dnsList2";
|
|
||||||
dnsList2.Size = new System.Drawing.Size(788, 49);
|
|
||||||
dnsList2.TabIndex = 16;
|
|
||||||
//
|
|
||||||
// UseCustomServers
|
|
||||||
//
|
|
||||||
UseCustomServers.AutoSize = true;
|
|
||||||
UseCustomServers.Location = new System.Drawing.Point(2169, 173);
|
|
||||||
UseCustomServers.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
|
||||||
UseCustomServers.Name = "UseCustomServers";
|
|
||||||
UseCustomServers.Size = new System.Drawing.Size(262, 45);
|
|
||||||
UseCustomServers.TabIndex = 17;
|
|
||||||
UseCustomServers.Text = "Custom Servers";
|
|
||||||
UseCustomServers.UseVisualStyleBackColor = true;
|
|
||||||
UseCustomServers.CheckedChanged += UseCustomServers_CheckedChanged;
|
|
||||||
//
|
|
||||||
// lblCustom1
|
|
||||||
//
|
|
||||||
lblCustom1.AutoSize = true;
|
|
||||||
lblCustom1.Location = new System.Drawing.Point(155, 328);
|
|
||||||
lblCustom1.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0);
|
|
||||||
lblCustom1.Name = "lblCustom1";
|
|
||||||
lblCustom1.Size = new System.Drawing.Size(219, 41);
|
|
||||||
lblCustom1.TabIndex = 18;
|
|
||||||
lblCustom1.Text = "Custom Dns 1: ";
|
|
||||||
lblCustom1.Visible = false;
|
|
||||||
//
|
|
||||||
// lblCustom2
|
|
||||||
//
|
|
||||||
lblCustom2.AutoSize = true;
|
|
||||||
lblCustom2.Location = new System.Drawing.Point(1174, 334);
|
|
||||||
lblCustom2.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0);
|
|
||||||
lblCustom2.Name = "lblCustom2";
|
|
||||||
lblCustom2.Size = new System.Drawing.Size(219, 41);
|
|
||||||
lblCustom2.TabIndex = 19;
|
|
||||||
lblCustom2.Text = "Custom Dns 2: ";
|
|
||||||
lblCustom2.Visible = false;
|
|
||||||
//
|
|
||||||
// CustomDns1
|
|
||||||
//
|
|
||||||
CustomDns1.BackColor = System.Drawing.Color.White;
|
|
||||||
CustomDns1.Enabled = false;
|
|
||||||
CustomDns1.Location = new System.Drawing.Point(408, 324);
|
|
||||||
CustomDns1.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
|
||||||
CustomDns1.Name = "CustomDns1";
|
|
||||||
CustomDns1.Size = new System.Drawing.Size(625, 47);
|
|
||||||
CustomDns1.TabIndex = 20;
|
|
||||||
CustomDns1.Visible = false;
|
|
||||||
//
|
|
||||||
// CustomDns2
|
|
||||||
//
|
|
||||||
CustomDns2.Enabled = false;
|
|
||||||
CustomDns2.Location = new System.Drawing.Point(1427, 330);
|
|
||||||
CustomDns2.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
|
||||||
CustomDns2.Name = "CustomDns2";
|
|
||||||
CustomDns2.Size = new System.Drawing.Size(668, 47);
|
|
||||||
CustomDns2.TabIndex = 21;
|
|
||||||
CustomDns2.Visible = false;
|
|
||||||
//
|
|
||||||
// lslStatus
|
|
||||||
//
|
|
||||||
lslStatus.AutoSize = true;
|
|
||||||
lslStatus.Location = new System.Drawing.Point(155, 1219);
|
|
||||||
lslStatus.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0);
|
|
||||||
lslStatus.Name = "lslStatus";
|
|
||||||
lslStatus.Size = new System.Drawing.Size(105, 41);
|
|
||||||
lslStatus.TabIndex = 22;
|
|
||||||
lslStatus.Text = "Status:";
|
|
||||||
//
|
|
||||||
// StatusBox
|
|
||||||
//
|
|
||||||
StatusBox.FormattingEnabled = true;
|
|
||||||
StatusBox.HorizontalScrollbar = true;
|
|
||||||
StatusBox.ItemHeight = 41;
|
|
||||||
StatusBox.Location = new System.Drawing.Point(155, 1271);
|
|
||||||
StatusBox.Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
|
||||||
StatusBox.Name = "StatusBox";
|
|
||||||
StatusBox.Size = new System.Drawing.Size(2209, 373);
|
|
||||||
StatusBox.TabIndex = 23;
|
|
||||||
//
|
|
||||||
// chkDns1
|
|
||||||
//
|
|
||||||
chkDns1.AutoSize = true;
|
|
||||||
chkDns1.Checked = true;
|
|
||||||
chkDns1.CheckState = System.Windows.Forms.CheckState.Checked;
|
|
||||||
chkDns1.Location = new System.Drawing.Point(277, 235);
|
|
||||||
chkDns1.Name = "chkDns1";
|
|
||||||
chkDns1.Size = new System.Drawing.Size(251, 45);
|
|
||||||
chkDns1.TabIndex = 24;
|
|
||||||
chkDns1.Text = "Test dns server";
|
|
||||||
chkDns1.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// chkDns2
|
|
||||||
//
|
|
||||||
chkDns2.AutoSize = true;
|
|
||||||
chkDns2.Checked = true;
|
|
||||||
chkDns2.CheckState = System.Windows.Forms.CheckState.Checked;
|
|
||||||
chkDns2.Location = new System.Drawing.Point(1307, 241);
|
|
||||||
chkDns2.Name = "chkDns2";
|
|
||||||
chkDns2.Size = new System.Drawing.Size(251, 45);
|
|
||||||
chkDns2.TabIndex = 25;
|
|
||||||
chkDns2.Text = "Test dns server";
|
|
||||||
chkDns2.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// label1
|
|
||||||
//
|
|
||||||
label1.AutoSize = true;
|
|
||||||
label1.Location = new System.Drawing.Point(155, 27);
|
|
||||||
label1.Name = "label1";
|
|
||||||
label1.Size = new System.Drawing.Size(270, 41);
|
|
||||||
label1.TabIndex = 26;
|
|
||||||
label1.Text = "Resolve ip address:";
|
|
||||||
//
|
|
||||||
// label2
|
|
||||||
//
|
|
||||||
label2.AutoSize = true;
|
|
||||||
label2.Location = new System.Drawing.Point(1180, 33);
|
|
||||||
label2.Name = "label2";
|
|
||||||
label2.Size = new System.Drawing.Size(266, 41);
|
|
||||||
label2.TabIndex = 27;
|
|
||||||
label2.Text = "Resolve hostname:";
|
|
||||||
//
|
|
||||||
// txtResolveIP
|
|
||||||
//
|
|
||||||
txtResolveIP.Location = new System.Drawing.Point(425, 21);
|
|
||||||
txtResolveIP.Name = "txtResolveIP";
|
|
||||||
txtResolveIP.Size = new System.Drawing.Size(608, 47);
|
|
||||||
txtResolveIP.TabIndex = 28;
|
|
||||||
//
|
|
||||||
// txtResolveHost
|
|
||||||
//
|
|
||||||
txtResolveHost.Location = new System.Drawing.Point(1443, 27);
|
|
||||||
txtResolveHost.Name = "txtResolveHost";
|
|
||||||
txtResolveHost.Size = new System.Drawing.Size(651, 47);
|
|
||||||
txtResolveHost.TabIndex = 29;
|
|
||||||
//
|
|
||||||
// btnResolveIP
|
|
||||||
//
|
|
||||||
btnResolveIP.Location = new System.Drawing.Point(425, 75);
|
|
||||||
btnResolveIP.Name = "btnResolveIP";
|
|
||||||
btnResolveIP.Size = new System.Drawing.Size(205, 51);
|
|
||||||
btnResolveIP.TabIndex = 30;
|
|
||||||
btnResolveIP.Text = "Resolve";
|
|
||||||
btnResolveIP.UseVisualStyleBackColor = true;
|
|
||||||
btnResolveIP.Click += btnResolveIP_Click;
|
|
||||||
//
|
//
|
||||||
// btnResolveHost
|
// btnResolveHost
|
||||||
//
|
//
|
||||||
btnResolveHost.Location = new System.Drawing.Point(1443, 81);
|
btnResolveHost.Location = new System.Drawing.Point(1583, 104);
|
||||||
btnResolveHost.Name = "btnResolveHost";
|
btnResolveHost.Name = "btnResolveHost";
|
||||||
btnResolveHost.Size = new System.Drawing.Size(167, 45);
|
btnResolveHost.Size = new System.Drawing.Size(240, 51);
|
||||||
btnResolveHost.TabIndex = 31;
|
btnResolveHost.TabIndex = 71;
|
||||||
btnResolveHost.Text = "Resolve";
|
btnResolveHost.Text = "Resolve";
|
||||||
btnResolveHost.UseVisualStyleBackColor = true;
|
btnResolveHost.UseVisualStyleBackColor = true;
|
||||||
btnResolveHost.Click += btnResolveHost_Click;
|
btnResolveHost.Click += btnResolveHost_Click;
|
||||||
//
|
//
|
||||||
// label3
|
// btnResolveIP
|
||||||
//
|
//
|
||||||
label3.AutoSize = true;
|
btnResolveIP.Location = new System.Drawing.Point(405, 104);
|
||||||
label3.Location = new System.Drawing.Point(675, 238);
|
btnResolveIP.Name = "btnResolveIP";
|
||||||
label3.Name = "label3";
|
btnResolveIP.Size = new System.Drawing.Size(240, 51);
|
||||||
label3.Size = new System.Drawing.Size(210, 41);
|
btnResolveIP.TabIndex = 70;
|
||||||
label3.TabIndex = 32;
|
btnResolveIP.Text = "Resolve";
|
||||||
label3.Text = "Total domains:";
|
btnResolveIP.UseVisualStyleBackColor = true;
|
||||||
|
btnResolveIP.Click += btnResolveIP_Click;
|
||||||
//
|
//
|
||||||
// numericUpDown1
|
// txtResolveHost
|
||||||
//
|
//
|
||||||
numericUpDown1.Location = new System.Drawing.Point(913, 238);
|
txtResolveHost.Location = new System.Drawing.Point(1583, 41);
|
||||||
numericUpDown1.Maximum = new decimal(new int[] { 1000000000, 0, 0, 0 });
|
txtResolveHost.Name = "txtResolveHost";
|
||||||
numericUpDown1.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
|
txtResolveHost.Size = new System.Drawing.Size(551, 47);
|
||||||
numericUpDown1.Name = "numericUpDown1";
|
txtResolveHost.TabIndex = 69;
|
||||||
numericUpDown1.Size = new System.Drawing.Size(120, 47);
|
|
||||||
numericUpDown1.TabIndex = 33;
|
|
||||||
numericUpDown1.Value = new decimal(new int[] { 20, 0, 0, 0 });
|
|
||||||
//
|
//
|
||||||
// comboBox1
|
// txtResolveIP
|
||||||
//
|
//
|
||||||
comboBox1.FormattingEnabled = true;
|
txtResolveIP.Location = new System.Drawing.Point(405, 41);
|
||||||
comboBox1.Items.AddRange(new object[] { "A", "NS", "CNAME", "MX", "TXT" });
|
txtResolveIP.Name = "txtResolveIP";
|
||||||
comboBox1.Location = new System.Drawing.Point(2129, 251);
|
txtResolveIP.Size = new System.Drawing.Size(551, 47);
|
||||||
comboBox1.Name = "comboBox1";
|
txtResolveIP.TabIndex = 68;
|
||||||
comboBox1.Size = new System.Drawing.Size(302, 49);
|
//
|
||||||
comboBox1.TabIndex = 34;
|
// label5
|
||||||
comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged;
|
//
|
||||||
|
label5.AutoSize = true;
|
||||||
|
label5.Location = new System.Drawing.Point(1267, 41);
|
||||||
|
label5.Name = "label5";
|
||||||
|
label5.Size = new System.Drawing.Size(266, 41);
|
||||||
|
label5.TabIndex = 67;
|
||||||
|
label5.Text = "Resolve hostname:";
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
label1.AutoSize = true;
|
||||||
|
label1.Location = new System.Drawing.Point(72, 41);
|
||||||
|
label1.Name = "label1";
|
||||||
|
label1.Size = new System.Drawing.Size(270, 41);
|
||||||
|
label1.TabIndex = 66;
|
||||||
|
label1.Text = "Resolve ip address:";
|
||||||
//
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
|
@ -342,30 +387,10 @@
|
||||||
AutoSize = true;
|
AutoSize = true;
|
||||||
AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
ClientSize = new System.Drawing.Size(2517, 1693);
|
ClientSize = new System.Drawing.Size(2517, 1693);
|
||||||
Controls.Add(comboBox1);
|
Controls.Add(panel3);
|
||||||
Controls.Add(numericUpDown1);
|
Controls.Add(panel2);
|
||||||
Controls.Add(label3);
|
Controls.Add(panel1);
|
||||||
Controls.Add(btnResolveHost);
|
|
||||||
Controls.Add(btnResolveIP);
|
|
||||||
Controls.Add(txtResolveHost);
|
|
||||||
Controls.Add(txtResolveIP);
|
|
||||||
Controls.Add(label2);
|
|
||||||
Controls.Add(label1);
|
|
||||||
Controls.Add(chkDns2);
|
|
||||||
Controls.Add(chkDns1);
|
|
||||||
Controls.Add(StatusBox);
|
|
||||||
Controls.Add(lslStatus);
|
|
||||||
Controls.Add(CustomDns2);
|
|
||||||
Controls.Add(CustomDns1);
|
|
||||||
Controls.Add(lblCustom2);
|
|
||||||
Controls.Add(lblCustom1);
|
|
||||||
Controls.Add(UseCustomServers);
|
|
||||||
Controls.Add(dnsList2);
|
|
||||||
Controls.Add(dnsList1);
|
|
||||||
Controls.Add(lblDns2);
|
|
||||||
Controls.Add(lblDns1);
|
|
||||||
Controls.Add(RunTest);
|
Controls.Add(RunTest);
|
||||||
Controls.Add(ResultView);
|
|
||||||
Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
|
Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
|
||||||
Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
Margin = new System.Windows.Forms.Padding(8, 7, 8, 7);
|
||||||
MaximizeBox = false;
|
MaximizeBox = false;
|
||||||
|
@ -373,42 +398,47 @@
|
||||||
StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
Text = "EonaCat.DnsTester";
|
Text = "EonaCat.DnsTester";
|
||||||
Load += TesterUI_Load;
|
Load += TesterUI_Load;
|
||||||
|
panel1.ResumeLayout(false);
|
||||||
|
panel1.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)numericUpDown1).EndInit();
|
((System.ComponentModel.ISupportInitialize)numericUpDown1).EndInit();
|
||||||
|
panel2.ResumeLayout(false);
|
||||||
|
panel3.ResumeLayout(false);
|
||||||
|
panel3.PerformLayout();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
PerformLayout();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.ListView ResultView;
|
|
||||||
private System.Windows.Forms.ColumnHeader WebName;
|
|
||||||
private System.Windows.Forms.ColumnHeader DNS1IP;
|
|
||||||
private System.Windows.Forms.ColumnHeader DNS1Timing;
|
|
||||||
private System.Windows.Forms.ColumnHeader DNS2IP;
|
|
||||||
private System.Windows.Forms.ColumnHeader DNS2Timing;
|
|
||||||
private System.Windows.Forms.Button RunTest;
|
private System.Windows.Forms.Button RunTest;
|
||||||
private System.Windows.Forms.Label lblDns1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.Label lblDns2;
|
|
||||||
private System.Windows.Forms.ComboBox dnsList1;
|
|
||||||
private System.Windows.Forms.ComboBox dnsList2;
|
|
||||||
private System.Windows.Forms.CheckBox UseCustomServers;
|
|
||||||
private System.Windows.Forms.Label lblCustom1;
|
|
||||||
private System.Windows.Forms.Label lblCustom2;
|
|
||||||
private System.Windows.Forms.TextBox CustomDns1;
|
|
||||||
private System.Windows.Forms.TextBox CustomDns2;
|
|
||||||
private System.Windows.Forms.Label lslStatus;
|
|
||||||
private System.Windows.Forms.ListBox StatusBox;
|
|
||||||
private System.Windows.Forms.CheckBox chkDns1;
|
|
||||||
private System.Windows.Forms.CheckBox chkDns2;
|
|
||||||
private System.Windows.Forms.Label label1;
|
|
||||||
private System.Windows.Forms.Label label2;
|
|
||||||
private System.Windows.Forms.TextBox txtResolveIP;
|
|
||||||
private System.Windows.Forms.TextBox txtResolveHost;
|
|
||||||
private System.Windows.Forms.Button btnResolveIP;
|
|
||||||
private System.Windows.Forms.Button btnResolveHost;
|
|
||||||
private System.Windows.Forms.Label label3;
|
|
||||||
private System.Windows.Forms.NumericUpDown numericUpDown1;
|
|
||||||
private System.Windows.Forms.ComboBox comboBox1;
|
private System.Windows.Forms.ComboBox comboBox1;
|
||||||
|
private System.Windows.Forms.NumericUpDown numericUpDown1;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.CheckBox chkDns2;
|
||||||
|
private System.Windows.Forms.CheckBox chkDns1;
|
||||||
|
private System.Windows.Forms.TextBox CustomDns2;
|
||||||
|
private System.Windows.Forms.TextBox CustomDns1;
|
||||||
|
private System.Windows.Forms.Label lblCustom2;
|
||||||
|
private System.Windows.Forms.Label lblCustom1;
|
||||||
|
private System.Windows.Forms.CheckBox UseCustomServers;
|
||||||
|
private System.Windows.Forms.ComboBox dnsList2;
|
||||||
|
private System.Windows.Forms.ComboBox dnsList1;
|
||||||
|
private System.Windows.Forms.Label lblDns2;
|
||||||
|
private System.Windows.Forms.Label lblDns1;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.ListBox StatusBox;
|
||||||
|
private System.Windows.Forms.ListView ResultView;
|
||||||
|
private System.Windows.Forms.ColumnHeader Url;
|
||||||
|
private System.Windows.Forms.ColumnHeader DNS1IP;
|
||||||
|
private System.Windows.Forms.ColumnHeader DNS1Performance;
|
||||||
|
private System.Windows.Forms.ColumnHeader DNS2IP;
|
||||||
|
private System.Windows.Forms.ColumnHeader DNS2Performance;
|
||||||
|
private System.Windows.Forms.Panel panel3;
|
||||||
|
private System.Windows.Forms.Button btnResolveHost;
|
||||||
|
private System.Windows.Forms.Button btnResolveIP;
|
||||||
|
private System.Windows.Forms.TextBox txtResolveHost;
|
||||||
|
private System.Windows.Forms.TextBox txtResolveIP;
|
||||||
|
private System.Windows.Forms.Label label5;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,11 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.DirectoryServices.ActiveDirectory;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Security.Cryptography;
|
|
||||||
using System.Security.Policy;
|
|
||||||
using System.Text;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using EonaCat.DnsTester.Helpers;
|
using EonaCat.DnsTester.Helpers;
|
||||||
|
@ -18,7 +14,7 @@ namespace EonaCat.DnsTester
|
||||||
{
|
{
|
||||||
public partial class MainForm : Form
|
public partial class MainForm : Form
|
||||||
{
|
{
|
||||||
private bool useCustomDnsServers;
|
private bool _useCustomDnsServers;
|
||||||
private string _dnsServer1, _dnsServer2;
|
private string _dnsServer1, _dnsServer2;
|
||||||
private DnsRecordType _recordType;
|
private DnsRecordType _recordType;
|
||||||
private int _dnsTotalChecked;
|
private int _dnsTotalChecked;
|
||||||
|
@ -32,6 +28,21 @@ namespace EonaCat.DnsTester
|
||||||
|
|
||||||
private async void RunTest_Click(object sender, EventArgs e)
|
private async void RunTest_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
if (!_useCustomDnsServers)
|
||||||
|
{
|
||||||
|
if (!chkDns1.Checked && !chkDns2.Checked)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Please enable DNS 1 or 2 before starting");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_useCustomDnsServers && (!chkDns1.Checked || chkDns2.Checked))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Please enable DNS 1 or 2 before using custom Dns");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
List<string> urls = new List<string>();
|
List<string> urls = new List<string>();
|
||||||
SetupView();
|
SetupView();
|
||||||
|
|
||||||
|
@ -48,13 +59,13 @@ namespace EonaCat.DnsTester
|
||||||
}
|
}
|
||||||
|
|
||||||
IsRunning = true;
|
IsRunning = true;
|
||||||
Process(_recordType, urls.ToArray(), _dnsServer1, _dnsServer2);
|
await Process(_recordType, urls.ToArray(), _dnsServer1, _dnsServer2);
|
||||||
IsRunning = false;
|
IsRunning = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetupView()
|
private void SetupView()
|
||||||
{
|
{
|
||||||
if (useCustomDnsServers)
|
if (_useCustomDnsServers)
|
||||||
{
|
{
|
||||||
_dnsTotalChecked = 0;
|
_dnsTotalChecked = 0;
|
||||||
if (chkDns1.Checked)
|
if (chkDns1.Checked)
|
||||||
|
@ -150,39 +161,22 @@ namespace EonaCat.DnsTester
|
||||||
|
|
||||||
private void UseCustomServers_CheckedChanged(object sender, EventArgs e)
|
private void UseCustomServers_CheckedChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
useCustomDnsServers = UseCustomServers.Checked;
|
_useCustomDnsServers = UseCustomServers.Checked;
|
||||||
SetUI();
|
SetUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetUI()
|
private void SetUI()
|
||||||
{
|
{
|
||||||
if (useCustomDnsServers)
|
dnsList1.Enabled = !_useCustomDnsServers && chkDns1.Checked;
|
||||||
{
|
dnsList2.Enabled = !_useCustomDnsServers && chkDns2.Checked;
|
||||||
dnsList1.Enabled = false;
|
|
||||||
dnsList2.Enabled = false;
|
|
||||||
|
|
||||||
CustomDns1.Enabled = true;
|
CustomDns1.Enabled = _useCustomDnsServers && chkDns1.Checked;
|
||||||
CustomDns2.Enabled = true;
|
CustomDns2.Enabled = _useCustomDnsServers && chkDns2.Checked;
|
||||||
|
|
||||||
CustomDns1.Visible = true;
|
CustomDns1.Visible = _useCustomDnsServers && chkDns1.Checked;
|
||||||
CustomDns2.Visible = true;
|
CustomDns2.Visible = _useCustomDnsServers && chkDns2.Checked;
|
||||||
lblCustom1.Visible = true;
|
lblCustom1.Visible = _useCustomDnsServers && chkDns1.Checked;
|
||||||
lblCustom2.Visible = true;
|
lblCustom2.Visible = _useCustomDnsServers && chkDns2.Checked;
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dnsList1.Enabled = true;
|
|
||||||
dnsList2.Enabled = true;
|
|
||||||
CustomDns1.Enabled = false;
|
|
||||||
CustomDns2.Enabled = false;
|
|
||||||
|
|
||||||
CustomDns1.Visible = false;
|
|
||||||
CustomDns2.Visible = false;
|
|
||||||
lblCustom1.Visible = false;
|
|
||||||
lblCustom2.Visible = false;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -270,14 +264,14 @@ namespace EonaCat.DnsTester
|
||||||
|
|
||||||
private void ProcessResponse(DnsResponse dnsResponse)
|
private void ProcessResponse(DnsResponse dnsResponse)
|
||||||
{
|
{
|
||||||
if (dnsResponse == null || dnsResponse.Answers == null || !dnsResponse.Answers.Any())
|
if (dnsResponse?.Answers == null || !dnsResponse.Answers.Any())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve stopTime
|
// Retrieve stopTime
|
||||||
var stopTime = DateTime.Now.Ticks;
|
var stopTime = DateTime.Now.Ticks;
|
||||||
var deltaTime = Convert.ToString((double)(stopTime - dnsResponse.StartTime) / 10000000);
|
var deltaTime = Convert.ToString((double)(stopTime - dnsResponse.StartTime) / 10000000, CultureInfo.InvariantCulture);
|
||||||
|
|
||||||
SetStatus($"ResourceRecord: Name: {dnsResponse.Answers.FirstOrDefault().Name} : Type : {dnsResponse.Answers.FirstOrDefault().Type} : Data : {dnsResponse.Answers.FirstOrDefault().Data}");
|
SetStatus($"ResourceRecord: Name: {dnsResponse.Answers.FirstOrDefault().Name} : Type : {dnsResponse.Answers.FirstOrDefault().Type} : Data : {dnsResponse.Answers.FirstOrDefault().Data}");
|
||||||
|
|
||||||
|
@ -329,47 +323,48 @@ namespace EonaCat.DnsTester
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
await Task.Run(() =>
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
try
|
||||||
{
|
{
|
||||||
var dnsEntry = Dns.GetHostEntry(iPAddress);
|
var dnsEntry = Dns.GetHostEntry(iPAddress);
|
||||||
txtResolveHost.Invoke(() =>
|
txtResolveHost.Invoke(() =>
|
||||||
{
|
{
|
||||||
txtResolveHost.Text = dnsEntry.HostName;
|
txtResolveHost.Text = dnsEntry.HostName;
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
}
|
catch (Exception)
|
||||||
catch (Exception)
|
{
|
||||||
{
|
MessageBox.Show($"Could not get hostname for IP address '{txtResolveIP.Text}'");
|
||||||
MessageBox.Show($"Could not get hostname for IP address '{txtResolveIP.Text}'");
|
}
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void btnResolveHost_Click(object sender, EventArgs e)
|
private async void btnResolveHost_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(txtResolveHost.Text))
|
if (string.IsNullOrWhiteSpace(txtResolveHost.Text))
|
||||||
{
|
{
|
||||||
MessageBox.Show("Please enter an hostname to resolve");
|
MessageBox.Show("Please enter a hostname to resolve");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
|
||||||
|
await Task.Run(() =>
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
try
|
||||||
{
|
{
|
||||||
var dnsEntry = Dns.GetHostEntry(txtResolveHost.Text);
|
var dnsEntry = Dns.GetHostEntry(txtResolveHost.Text);
|
||||||
|
|
||||||
txtResolveHost.Invoke(() =>
|
txtResolveHost.Invoke(() =>
|
||||||
{
|
{
|
||||||
txtResolveIP.Text = dnsEntry.AddressList.Where(x => x.AddressFamily == AddressFamily.InterNetwork).FirstOrDefault().Address.ToString();
|
txtResolveIP.Text = dnsEntry.AddressList.Where(x => x.AddressFamily == AddressFamily.InterNetwork).FirstOrDefault().Address.ToString();
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
}
|
catch (Exception)
|
||||||
catch (Exception)
|
{
|
||||||
{
|
MessageBox.Show($"Could not get IP address for hostname '{txtResolveHost.Text}'");
|
||||||
MessageBox.Show($"Could not get hostname for IP address '{txtResolveIP.Text}'");
|
}
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetStatus(string text)
|
private void SetStatus(string text)
|
||||||
|
@ -396,5 +391,15 @@ namespace EonaCat.DnsTester
|
||||||
_recordType = queryType;
|
_recordType = queryType;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void chkDns2_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SetUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void chkDns1_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SetUI();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue