Updated
This commit is contained in:
		| @@ -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> | ||||||
| @@ -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; | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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); | ||||||
|   | |||||||
| @@ -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
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Screenshots/1.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 205 KiB | 
		Reference in New Issue
	
	Block a user