feat: detect an agent's public IPv4 and IPv6 addresses automatically, manual values still win [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
ci/woodpecker/push/main-amd64-build Pipeline was successful
This commit is contained in:
1 parent
9966ea5d63
commit
f03988d68b
26 files changed
+517
-33
No files matched your search
@@ -0,0 +1,35 @@
|
||||
using System.Net;
|
||||
using MoShiro.Protocol;
|
||||
|
||||
namespace MoShiro.Protocol.Tests;
|
||||
|
||||
public sealed class PublicAddressTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("8.8.8.8", true)]
|
||||
[InlineData("23.176.40.145", true)]
|
||||
[InlineData("10.1.2.3", false)]
|
||||
[InlineData("172.16.0.1", false)]
|
||||
[InlineData("172.32.0.1", true)]
|
||||
[InlineData("192.168.2.162", false)]
|
||||
[InlineData("100.64.0.1", false)]
|
||||
[InlineData("169.254.1.1", false)]
|
||||
[InlineData("127.0.0.1", false)]
|
||||
[InlineData("203.0.113.10", false)]
|
||||
[InlineData("224.0.0.1", false)]
|
||||
public void Ipv4_OnlyPublicAddressesCountAsReachable(string text, bool expected) =>
|
||||
Assert.Equal(expected, PublicAddress.IsPublicIpv4(IPAddress.Parse(text)));
|
||||
|
||||
[Theory]
|
||||
[InlineData("2409:8a55:6c45:62d1::69d", true)]
|
||||
[InlineData("2606:4700:4700::1111", true)]
|
||||
[InlineData("fd00::1", false)]
|
||||
[InlineData("fe80::1", false)]
|
||||
[InlineData("::1", false)]
|
||||
[InlineData("2001:db8::1", false)]
|
||||
[InlineData("2002:c000:204::1", false)]
|
||||
[InlineData("2001:0:4136:e378::1", false)]
|
||||
[InlineData("::ffff:8.8.8.8", false)]
|
||||
public void Ipv6_OnlyGlobalUnicastCountsAsReachable(string text, bool expected) =>
|
||||
Assert.Equal(expected, PublicAddress.IsGlobalIpv6(IPAddress.Parse(text)));
|
||||
}
|
||||
Reference in new issue
Block a user