This commit is contained in:
EonaCat 2023-03-02 16:05:30 +01:00
parent d3aef63feb
commit 27bdfceb5a
5 changed files with 50 additions and 52 deletions

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework> <TargetFramework>net7.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms> <UseWindowsForms>true</UseWindowsForms>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo> <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
@ -28,5 +28,8 @@
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput> <LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None> </None>
<None Update="Servers.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -21,6 +21,7 @@ namespace EonaCat.DnsTester.Helpers
{ {
client.DontFragment = true; client.DontFragment = true;
client.EnableBroadcast = false; client.EnableBroadcast = false;
client.Client.SendTimeout = DnsSendTimeout;
client.Client.ReceiveTimeout = DnsReceiveTimeout; client.Client.ReceiveTimeout = DnsReceiveTimeout;
byte[] responseBytes = null; byte[] responseBytes = null;
if (FakeResponse) if (FakeResponse)
@ -42,6 +43,7 @@ namespace EonaCat.DnsTester.Helpers
// For testing purposes // For testing purposes
public static bool FakeResponse { get; set; } public static bool FakeResponse { get; set; }
public static int DnsSendTimeout { get; set; } = 5;
public static int DnsReceiveTimeout { get; set; } = 5; public static int DnsReceiveTimeout { get; set; } = 5;

View File

@ -39,52 +39,55 @@ namespace EonaCat.DnsTester.Helpers
string url = searchEngine.Value + letters; string url = searchEngine.Value + letters;
try using (var client = new WebClient())
{ {
using (var client = new WebClient()) string responseString = null;
try
{ {
string responseString = client.DownloadString(url); responseString = client.DownloadString(url);
}
catch (Exception ex)
{
searchEngineUrls.Remove(searchEngine.Key);
SetStatus($"{searchEngine.Key}: {ex.Message}");
}
// find all .xxx.com addresses if (responseString == null)
MatchCollection hostNames = Regex.Matches(responseString, @"[.](\w+[.]com)"); {
continue;
}
// Loop through the match collection to retrieve all matches and delete the leading "." // find all .xxx.com addresses
HashSet<string> uniqueNames = new HashSet<string>(); MatchCollection hostNames = Regex.Matches(responseString, @"[.](\w+[.]com)");
foreach (Match match in hostNames)
// Loop through the match collection to retrieve all matches and delete the leading "."
HashSet<string> uniqueNames = new HashSet<string>();
foreach (Match match in hostNames)
{
string name = match.Groups[1].Value;
if (name != $"{searchEngine.Key.ToLower()}.com")
{ {
string name = match.Groups[1].Value; uniqueNames.Add(name);
if (name != $"{searchEngine.Key.ToLower()}.com")
{
uniqueNames.Add(name);
}
}
// Add the names to the list
foreach (string name in uniqueNames)
{
if (urls.Count >= totalUrls)
{
break;
}
if (!urls.Contains(name))
{
urls.Add(name);
}
} }
} }
await Task.Delay(100); // Add the names to the list
} foreach (string name in uniqueNames)
catch (Exception ex) {
{ if (urls.Count >= totalUrls)
searchEngineUrls.Remove(searchEngine.Key); {
SetStatus($"{searchEngine.Key}: {ex.Message}"); break;
} }
finally
{ if (!urls.Contains(name))
letters = GetRandomLetters(); {
urls.Add(name);
}
}
} }
letters = GetRandomLetters();
await Task.Delay(100);
} }
var urlText = "url" + (urls.Count > 1 ? "'s" : string.Empty); var urlText = "url" + (urls.Count > 1 ? "'s" : string.Empty);

View File

@ -55,12 +55,6 @@ namespace EonaCat.DnsTester
urls = await UrlHelper.RetrieveUrls(numThreads, numUrlsPerThread); urls = await UrlHelper.RetrieveUrls(numThreads, numUrlsPerThread);
AddUrlToView(urls); AddUrlToView(urls);
if (IsRunning)
{
return;
}
IsRunning = true; IsRunning = true;
await Process(_recordType, urls.ToArray(), _dnsServer1, _dnsServer2); await Process(_recordType, urls.ToArray(), _dnsServer1, _dnsServer2);
IsRunning = false; IsRunning = false;
@ -199,14 +193,10 @@ namespace EonaCat.DnsTester
for (int i = 0; i < urlsTotal; i++) for (int i = 0; i < urlsTotal; i++)
{ {
await Task.Run(async () => var currentUrl = urls[i];
{ await ExecuteDns1(recordType, dnsAddress1, currentUrl, dnsId1, i);
var currentUrl = urls[i]; if (!chkDns2.Checked) return;
await ExecuteDns2(recordType, dnsAddress2, currentUrl, dnsId2, i);
await ExecuteDns1(recordType, dnsAddress1, currentUrl, dnsId1, i);
if (!chkDns2.Checked) return;
await ExecuteDns2(recordType, dnsAddress2, currentUrl, dnsId2, i);
});
await Task.Delay(100); await Task.Delay(100);
} }
} }

BIN
Screenshots/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB