Skip to content

Commit 01ae7e6

Browse files
authored
Feature: Ping Monitor improvements (#2573)
* Feature: Ping Monitor improvements * Feature: DNS Lookup / Port Scanner improve group string * Feature: Host range aded to Ping Monitor & new design * Feature: Allow range in profile * Feature: Ping Monitor * Feature: Setting to expand host view * Feature: Expand ping monitor host * Docs: Ping Monitor * Chore: Refactoring * Feature: Ping Monitor * Docs: Update img
1 parent 24fa4f0 commit 01ae7e6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1161
-801
lines changed

InnoSetup.iss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
33

44
#define MyAppName "NETworkManager"
5-
#define MyAppVersion "2023.11.28.0"
5+
#define MyAppVersion "2023.12.9.0"
66
#define MyAppPublisher "BornToBeRoot"
77
#define MyAppURL "https://github.com/BornToBeRoot/NETworkManager/"
88
#define MyAppExeName "NETworkManager.exe"

Source/GlobalAssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
[assembly: AssemblyTrademark("")]
77
[assembly: AssemblyCulture("")]
88

9-
[assembly: AssemblyVersion("2023.11.28.0")]
10-
[assembly: AssemblyFileVersion("2023.11.28.0")]
9+
[assembly: AssemblyVersion("2023.12.9.0")]
10+
[assembly: AssemblyFileVersion("2023.12.9.0")]

Source/NETworkManager.Converters/PercentConverter.cs

Lines changed: 0 additions & 21 deletions
This file was deleted.

Source/NETworkManager.Localization/Resources/StaticStrings.Designer.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Source/NETworkManager.Localization/Resources/StaticStrings.resx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@
145145
<value>SERVER-01 or 10.0.0.10</value>
146146
</data>
147147
<data name="ExampleHostRange" xml:space="preserve">
148-
<value>192.168.1.0/24; 192.168.178.1 - 192.168.178.128; 192.168.[178-179].[1,100,150-200]; borntoberoot.net/24</value>
148+
<value>192.168.178.0/24; 10.0.0.0 - 10.0.0.9; 10.0.[0-9,20].[1-2]; server-01.borntoberoot.net/24</value>
149149
</data>
150150
<data name="ExampleIPv4Address" xml:space="preserve">
151151
<value>10.0.0.10</value>

Source/NETworkManager.Localization/Resources/Strings.Designer.cs

Lines changed: 28 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Source/NETworkManager.Localization/Resources/Strings.resx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -873,7 +873,7 @@ First make a backup copy of your profile files before enabling encryption!</valu
873873
<value>Hostname or IP address</value>
874874
</data>
875875
<data name="Hosts" xml:space="preserve">
876-
<value>Host(s)</value>
876+
<value>Hosts</value>
877877
</data>
878878
<data name="ID" xml:space="preserve">
879879
<value>ID</value>
@@ -3748,4 +3748,13 @@ Try again in a few seconds.</value>
37483748
<data name="SNMPErrorCode_InconsistentName" xml:space="preserve">
37493749
<value>The object's state is inconsistent, preventing the set operation!</value>
37503750
</data>
3751+
<data name="CloseAll" xml:space="preserve">
3752+
<value>Close all</value>
3753+
</data>
3754+
<data name="ExpandHostView" xml:space="preserve">
3755+
<value>Expand host view</value>
3756+
</data>
3757+
<data name="CannotSetHostWhileRunningMessage" xml:space="preserve">
3758+
<value>Host cannot be set while other hosts are being added. Please wait until the process is complete and try again.</value>
3759+
</data>
37513760
</root>

Source/NETworkManager.Models/Export/ExportManager.DNSLookupRecordInfo.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ private static void CreateCsv(IEnumerable<DNSLookupRecordInfo> collection, strin
4646
var stringBuilder = new StringBuilder();
4747

4848
stringBuilder.AppendLine(
49-
$"{nameof(DNSLookupRecordInfo.DomainName)},{nameof(DNSLookupRecordInfo.TTL)},{nameof(DNSLookupRecordInfo.RecordClass)},{nameof(DNSLookupRecordInfo.RecordType)},{nameof(DNSLookupRecordInfo.Result)},{nameof(DNSLookupRecordInfo.Server)},{nameof(DNSLookupRecordInfo.IPEndPoint)}");
49+
$"{nameof(DNSLookupRecordInfo.DomainName)},{nameof(DNSLookupRecordInfo.TTL)},{nameof(DNSLookupRecordInfo.RecordClass)},{nameof(DNSLookupRecordInfo.RecordType)},{nameof(DNSLookupRecordInfo.Result)},{nameof(DNSLookupRecordInfo.NameServerIPAddress)},{nameof(DNSLookupRecordInfo.NameServerHostName)},{nameof(DNSLookupRecordInfo.NameServerPort)}");
5050

5151
foreach (var info in collection)
5252
stringBuilder.AppendLine(
53-
$"{info.DomainName},{info.TTL},{info.RecordClass},{info.RecordType},{info.Result},{info.Server},{info.IPEndPoint}");
53+
$"{info.DomainName},{info.TTL},{info.RecordClass},{info.RecordType},{info.Result},{info.NameServerIPAddress},{info.NameServerHostName},{info.NameServerPort}");
5454

5555
System.IO.File.WriteAllText(filePath, stringBuilder.ToString());
5656
}
@@ -73,8 +73,9 @@ from info in collection
7373
new XElement(nameof(DNSLookupRecordInfo.RecordClass), info.RecordClass),
7474
new XElement(nameof(DNSLookupRecordInfo.RecordType), info.RecordType),
7575
new XElement(nameof(DNSLookupRecordInfo.Result), info.Result),
76-
new XElement(nameof(DNSLookupRecordInfo.Server), info.Server),
77-
new XElement(nameof(DNSLookupRecordInfo.IPEndPoint), info.IPEndPoint)))));
76+
new XElement(nameof(DNSLookupRecordInfo.NameServerIPAddress), info.NameServerIPAddress),
77+
new XElement(nameof(DNSLookupRecordInfo.NameServerHostName), info.NameServerHostName),
78+
new XElement(nameof(DNSLookupRecordInfo.NameServerPort), info.NameServerPort)))));
7879

7980
document.Save(filePath);
8081
}
@@ -97,8 +98,9 @@ private static void CreateJson(IReadOnlyList<DNSLookupRecordInfo> collection, st
9798
collection[i].RecordClass,
9899
collection[i].RecordType,
99100
collection[i].Result,
100-
collection[i].Server,
101-
collection[i].IPEndPoint
101+
collection[i].NameServerIPAddress,
102+
collection[i].NameServerHostName,
103+
collection[i].NameServerPort
102104
};
103105
}
104106

Source/NETworkManager.Models/Network/DNSLookup.cs

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
using DnsClient.Protocol;
33
using System;
44
using System.Collections.Generic;
5-
using System.Diagnostics;
65
using System.Linq;
76
using System.Net;
87
using System.Net.NetworkInformation;
98
using System.Threading.Tasks;
9+
using NETworkManager.Utilities;
1010

1111
namespace NETworkManager.Models.Network;
1212

@@ -116,8 +116,15 @@ public void ResolveAsync(IEnumerable<string> hosts)
116116
var queries = _addSuffix && _settings.QueryType != QueryType.PTR ? GetHostWithSuffix(hosts) : hosts;
117117

118118
// Foreach dns server
119-
Parallel.ForEach(_servers, dnsServer =>
119+
Parallel.ForEach(_servers, async dnsServer =>
120120
{
121+
// Get the dns server hostname for some additional information
122+
var dnsServerHostName = string.Empty;
123+
124+
var dnsResult = await DNSClient.GetInstance().ResolvePtrAsync(dnsServer.Address);
125+
if (!dnsResult.HasError)
126+
dnsServerHostName = dnsResult.Value;
127+
121128
// Init each dns server once
122129
LookupClientOptions lookupClientOptions = new(dnsServer)
123130
{
@@ -129,7 +136,7 @@ public void ResolveAsync(IEnumerable<string> hosts)
129136
};
130137

131138
LookupClient lookupClient = new(lookupClientOptions);
132-
139+
133140
// Foreach host
134141
Parallel.ForEach(queries, query =>
135142
{
@@ -153,7 +160,7 @@ public void ResolveAsync(IEnumerable<string> hosts)
153160
}
154161

155162
// Process the results...
156-
ProcessDnsAnswers(dnsResponse.Answers, dnsResponse.NameServer);
163+
ProcessDnsAnswers(dnsResponse.Answers, dnsResponse.NameServer, dnsServerHostName);
157164
}
158165
catch (Exception ex)
159166
{
@@ -171,7 +178,7 @@ public void ResolveAsync(IEnumerable<string> hosts)
171178
/// </summary>
172179
/// <param name="answers">List of DNS resource records.</param>
173180
/// <param name="nameServer">DNS name server that answered the query.</param>
174-
private void ProcessDnsAnswers(IEnumerable<DnsResourceRecord> answers, NameServer nameServer)
181+
private void ProcessDnsAnswers(IEnumerable<DnsResourceRecord> answers, NameServer nameServer, string nameServerHostname = null)
175182
{
176183
if(answers is not DnsResourceRecord[] dnsResourceRecords)
177184
return;
@@ -180,49 +187,49 @@ private void ProcessDnsAnswers(IEnumerable<DnsResourceRecord> answers, NameServe
180187
foreach (var record in dnsResourceRecords.ARecords())
181188
OnRecordReceived(new DNSLookupRecordReceivedArgs(
182189
new DNSLookupRecordInfo(
183-
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}" , $"{record.Address}", $"{nameServer.Address}", $"{nameServer.Address}:{nameServer.Port}")));
190+
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}" , $"{record.Address}", $"{nameServer.Address}", nameServerHostname, nameServer.Port)));
184191

185192
// AAAA
186193
foreach (var record in dnsResourceRecords.AaaaRecords())
187194
OnRecordReceived(new DNSLookupRecordReceivedArgs(
188195
new DNSLookupRecordInfo(
189-
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", $"{record.Address}", $"{nameServer.Address}", $"{nameServer.Address}:{nameServer.Port}")));
196+
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", $"{record.Address}", $"{nameServer.Address}", nameServerHostname, nameServer.Port)));
190197

191198
// CNAME
192199
foreach (var record in dnsResourceRecords.CnameRecords())
193200
OnRecordReceived(new DNSLookupRecordReceivedArgs(
194201
new DNSLookupRecordInfo(
195-
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", record.CanonicalName, $"{nameServer.Address}", $"{nameServer.Address}:{nameServer.Port}")));
202+
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", record.CanonicalName, $"{nameServer.Address}", nameServerHostname, nameServer.Port)));
196203

197204
// MX
198205
foreach (var record in dnsResourceRecords.MxRecords())
199206
OnRecordReceived(new DNSLookupRecordReceivedArgs(
200207
new DNSLookupRecordInfo(
201-
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", record.Exchange, $"{nameServer.Address}", $"{nameServer.Address}:{nameServer.Port}")));
208+
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", record.Exchange, $"{nameServer.Address}", nameServerHostname, nameServer.Port)));
202209

203210
// NS
204211
foreach (var record in dnsResourceRecords.NsRecords())
205212
OnRecordReceived(new DNSLookupRecordReceivedArgs(
206213
new DNSLookupRecordInfo(
207-
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", record.NSDName, $"{nameServer.Address}", $"{nameServer.Address}:{nameServer.Port}")));
214+
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", record.NSDName, $"{nameServer.Address}", nameServerHostname, nameServer.Port)));
208215

209216
// PTR
210217
foreach (var record in dnsResourceRecords.PtrRecords())
211218
OnRecordReceived(new DNSLookupRecordReceivedArgs(
212219
new DNSLookupRecordInfo(
213-
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", record.PtrDomainName, $"{nameServer.Address}", $"{nameServer.Address}:{nameServer.Port}")));
220+
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", record.PtrDomainName, $"{nameServer.Address}", nameServerHostname, nameServer.Port)));
214221

215222
// SOA
216223
foreach (var record in dnsResourceRecords.SoaRecords())
217224
OnRecordReceived(new DNSLookupRecordReceivedArgs(
218225
new DNSLookupRecordInfo(
219-
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", record.MName + ", " + record.RName, $"{nameServer.Address}", $"{nameServer.Address}:{nameServer.Port}")));
226+
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", record.MName + ", " + record.RName, $"{nameServer.Address}", nameServerHostname, nameServer.Port)));
220227

221228
// TXT
222229
foreach (var record in dnsResourceRecords.TxtRecords())
223230
OnRecordReceived(new DNSLookupRecordReceivedArgs(
224231
new DNSLookupRecordInfo(
225-
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", string.Join(", ", record.Text), $"{nameServer.Address}", $"{nameServer.Address}:{nameServer.Port}")));
232+
record.DomainName, record.TimeToLive, $"{record.RecordClass}",$"{record.RecordType}", string.Join(", ", record.Text), $"{nameServer.Address}", nameServerHostname, nameServer.Port)));
226233

227234
// ToDo: implement more
228235
}

Source/NETworkManager.Models/Network/DNSLookupRecordInfo.cs

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ public class DNSLookupRecordInfo
99
/// Domain name of the record.
1010
/// </summary>
1111
public string DomainName { get; set; }
12-
12+
1313
/// <summary>
1414
/// Time to live (TTL) of the record.
1515
/// </summary>
1616
public int TTL { get; set; }
17-
17+
1818
/// <summary>
1919
/// Class of the record.
2020
/// </summary>
@@ -31,14 +31,26 @@ public class DNSLookupRecordInfo
3131
public string Result { get; set; }
3232

3333
/// <summary>
34-
/// Name server that provided the result.
34+
/// IP address of the name server that provided the result.
35+
/// </summary>
36+
public string NameServerIPAddress { get; set; }
37+
38+
/// <summary>
39+
/// Port of the name server that provided the result.
40+
/// </summary>
41+
public int NameServerPort { get; set; }
42+
43+
/// <summary>
44+
/// Hostname of the name server that provided the result.
3545
/// </summary>
36-
public string Server { get; set; }
46+
public string NameServerHostName { get; set; }
3747

3848
/// <summary>
39-
/// IP endpoint (IP address:port) of the name server that provided the result.
49+
/// Hostname (if available) or/and IP address with port of the name server that provided the result.
4050
/// </summary>
41-
public string IPEndPoint { get; set; }
51+
public string NameServerAsString => string.IsNullOrEmpty(NameServerHostName)
52+
? $"{NameServerIPAddress}:{NameServerPort}"
53+
: $"{NameServerHostName.TrimEnd('.')} # {NameServerIPAddress}:{NameServerPort}";
4254

4355
/// <summary>
4456
/// Creates a new instance of <see cref="DNSLookupRecordInfo"/> with the specified parameters.
@@ -48,16 +60,19 @@ public class DNSLookupRecordInfo
4860
/// <param name="recordClass">Class of the record.</param>
4961
/// <param name="recordType">Type of the record.</param>
5062
/// <param name="result">Result of the record. (IP address, hostname, text, etc.)</param>
51-
/// <param name="server">Name server that provided the result.</param>
52-
/// <param name="ipEndPoint">IP endpoint (IP address:port) of the name server that provided the result.</param>
53-
public DNSLookupRecordInfo(string domainName, int ttl, string recordClass, string recordType, string result, string server, string ipEndPoint)
63+
/// <param name="nameServerIPAddress">IP address of the name server that provided the result.</param>
64+
/// <param name="nameServerHostName">Hostname of the name server that provided the result.</param>
65+
/// <param name="nameServerPort">Port of the name server that provided the result.</param>
66+
public DNSLookupRecordInfo(string domainName, int ttl, string recordClass, string recordType, string result,
67+
string nameServerIPAddress, string nameServerHostName, int nameServerPort)
5468
{
5569
DomainName = domainName;
5670
TTL = ttl;
5771
RecordClass = recordClass;
5872
RecordType = recordType;
5973
Result = result;
60-
Server = server;
61-
IPEndPoint = ipEndPoint;
74+
NameServerIPAddress = nameServerIPAddress;
75+
NameServerPort = nameServerPort;
76+
NameServerHostName = nameServerHostName;
6277
}
63-
}
78+
}

Source/NETworkManager.Models/Network/HostNotFoundException.cs

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)