36 lines
1.2 KiB
C#
36 lines
1.2 KiB
C#
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)));
|
|
}
|