Added DNS record string representation

This commit is contained in:
2025-08-12 05:27:53 +02:00
parent 4cbc0f4e38
commit 11201648ad
23 changed files with 160 additions and 1 deletions

View File

@@ -240,7 +240,7 @@ namespace AMWD.Net.Api.Cloudflare.Dns
/// A record for DANE. RFC 6698 defines "The TLSA DNS resource record is used to associate a TLS server certificate /// A record for DANE. RFC 6698 defines "The TLSA DNS resource record is used to associate a TLS server certificate
/// or public key with the domain name where the record is found, thus forming a 'TLSA certificate association'". /// or public key with the domain name where the record is found, thus forming a 'TLSA certificate association'".
/// <code> /// <code>
/// _443._tcp.example.com. 3600 IN TLSA 3 0 18cb0fc6c527506a053f4f14c8464bebbd6dede2738d11468dd953d7d6a3021f1 /// _443._tcp.example.com. 3600 IN TLSA 3 0 1 18cb0fc6c527506a053f4f14c8464bebbd6dede2738d11468dd953d7d6a3021f1
/// </code> /// </code>
/// </remarks> /// </remarks>
[EnumMember(Value = "TLSA")] [EnumMember(Value = "TLSA")]

View File

@@ -71,5 +71,17 @@
/// </summary> /// </summary>
[JsonProperty("ttl")] [JsonProperty("ttl")]
public int TimeToLive { get; set; } public int TimeToLive { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"@ {TimeToLive} IN SOA {PrimaryNameserver} {ZoneAdministrator} ({Environment.NewLine}"
+ $" <serial-number> ; Serial{Environment.NewLine}"
+ $" {Refresh} ; Time interval for DNS resolvers to check the SOA for updates{Environment.NewLine}"
+ $" {Retry} ; Time interval to wait before a new query should be performed when the server was not responding{Environment.NewLine}"
+ $" {Expire} ; Time interval after which a resolver should stop answering queries when the server was not responding{Environment.NewLine}"
+ $" {MinimumTtl} ; Time interval for negative caching)";
}
} }
} }

View File

@@ -14,5 +14,12 @@
{ {
Type = DnsRecordType.AAAA; Type = DnsRecordType.AAAA;
} }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN AAAA {Content}";
}
} }
} }

View File

@@ -14,5 +14,12 @@
{ {
Type = DnsRecordType.A; Type = DnsRecordType.A;
} }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN A {Content}";
}
} }
} }

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public CAARecordData? Data { get; set; } public CAARecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN CAA {Data?.Flags} {Data?.Tag} \"{Data?.Value}\"";
}
} }
/// <summary> /// <summary>

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public CERTRecordData? Data { get; set; } public CERTRecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN CERT {Data?.Type} {Data?.KeyTag} {Data?.Algorithm} {Data?.Certificate}";
}
} }
/// <summary> /// <summary>

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("settings")] [JsonProperty("settings")]
public new CNAMERecordSettings? Settings { get; set; } public new CNAMERecordSettings? Settings { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN CNAME {Content}";
}
} }
/// <summary> /// <summary>

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public DNSKEYRecordData? Data { get; set; } public DNSKEYRecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN DNSKEY {Data?.Flags} {Data?.Protocol} {Data?.Algorithm} {Data?.PublicKey}";
}
} }
/// <summary> /// <summary>

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public DSRecordData? Data { get; set; } public DSRecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN DS {Data?.KeyTag} {Data?.DigestType} {Data?.Algorithm} {Data?.Digest}";
}
} }
/// <summary> /// <summary>

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public HTTPSRecordData? Data { get; set; } public HTTPSRecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN HTTPS {Data?.Priority} {Data?.Target} {Data?.Value}";
}
} }
/// <summary> /// <summary>

View File

@@ -23,6 +23,13 @@ namespace AMWD.Net.Api.Cloudflare.Dns
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public LOCRecordData? Data { get; set; } public LOCRecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN LOC {Data?.LatitudeDegrees} {Data?.LatitudeMinutes} {Data?.LatitudeSeconds} {Data?.LatitudeDirection} {Data?.LongitudeDegrees} {Data?.LongitudeMinutes} {Data?.LongitudeSeconds} {Data?.LongitudeDirection} {Data?.Altitude} {Data?.Size} {Data?.PrecisionHorizontal} {Data?.PrecisionVertical}";
}
} }
/// <summary> /// <summary>

View File

@@ -21,5 +21,12 @@
/// </summary> /// </summary>
[JsonProperty("priority")] [JsonProperty("priority")]
public int? Priority { get; set; } public int? Priority { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN MX {Priority} {Content}";
}
} }
} }

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public NAPTRRecordData? Data { get; set; } public NAPTRRecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN NAPTR {Data?.Order} {Data?.Preference} {Data?.Flags} \"{Data?.Service}\" \"{Data?.Regex}\" \"{Data?.Replacement}\"";
}
} }
/// <summary> /// <summary>

View File

@@ -14,5 +14,12 @@
{ {
Type = DnsRecordType.NS; Type = DnsRecordType.NS;
} }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN NS {Content}";
}
} }
} }

View File

@@ -20,5 +20,12 @@
/// </summary> /// </summary>
[JsonProperty("content")] [JsonProperty("content")]
public new string? Content { get; set; } public new string? Content { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN OPENPGPKEY {Content}";
}
} }
} }

View File

@@ -14,5 +14,12 @@
{ {
Type = DnsRecordType.PTR; Type = DnsRecordType.PTR;
} }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN PTR {Content}";
}
} }
} }

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public SMIMEARecordData? Data { get; set; } public SMIMEARecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN SMIMEA {Data?.Usage} {Data?.Selector} {Data?.MatchingType} {Data?.Certificate}";
}
} }
/// <summary> /// <summary>

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public SRVRecordData? Data { get; set; } public SRVRecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN SRV {Data?.Priority} {Data?.Weight} {Data?.Port} {Data?.Target}";
}
} }
/// <summary> /// <summary>

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public SSHFPRecordData? Data { get; set; } public SSHFPRecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN SSHFP {Data?.Algorithm} {Data?.Type} {Data?.Fingerprint}";
}
} }
/// <summary> /// <summary>

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public SVCBRecordData? Data { get; set; } public SVCBRecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN SVCB {Data?.Priority} {Data?.Target} {Data?.Value}";
}
} }
/// <summary> /// <summary>

View File

@@ -20,6 +20,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public TLSARecordData? Data { get; set; } public TLSARecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN TLSA {Data?.Usage} {Data?.Selector} {Data?.MatchingType} {Data?.Certificate}";
}
} }
/// <summary> /// <summary>

View File

@@ -25,5 +25,12 @@
/// </remarks> /// </remarks>
[JsonProperty("content")] [JsonProperty("content")]
public new string? Content { get; set; } public new string? Content { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN TXT \"{Content}\"";
}
} }
} }

View File

@@ -27,6 +27,13 @@
/// </summary> /// </summary>
[JsonProperty("data")] [JsonProperty("data")]
public URIRecordData? Data { get; set; } public URIRecordData? Data { get; set; }
/// <inheritdoc/>
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public override string ToString()
{
return $"{Name} {TimeToLive} IN URI {Priority} {Data?.Weight} \"{Data?.Target}\"";
}
} }
/// <summary> /// <summary>