first commit
This commit is contained in:
68
Nitrox.Test/Model/Helper/NetHelperTest.cs
Normal file
68
Nitrox.Test/Model/Helper/NetHelperTest.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
|
||||
namespace NitroxModel.Helper;
|
||||
|
||||
[TestClass]
|
||||
public class NetHelperTest
|
||||
{
|
||||
[TestMethod]
|
||||
public void ShouldMatchPrivateIps()
|
||||
{
|
||||
// Tested subnet ranges that are reserved for private networks:
|
||||
// 10.0.0.0/8
|
||||
// 127.0.0.0/8
|
||||
// 172.16.0.0/12
|
||||
// 192.0.0.0/24
|
||||
// 192.168.0.0/16
|
||||
// 198.18.0.0/15
|
||||
|
||||
IPAddress.Parse("10.0.0.0").IsPrivate().Should().BeTrue();
|
||||
IPAddress.Parse("10.0.0.255").IsPrivate().Should().BeTrue();
|
||||
IPAddress.Parse("172.31.255.255").IsPrivate().Should().BeTrue();
|
||||
IPAddress.Parse("172.31.255.255").IsPrivate().Should().BeTrue();
|
||||
IPAddress.Parse("192.0.0.255").IsPrivate().Should().BeTrue();
|
||||
IPAddress.Parse("192.168.2.1").IsPrivate().Should().BeTrue();
|
||||
IPAddress.Parse("192.168.2.254").IsPrivate().Should().BeTrue();
|
||||
IPAddress.Parse("192.168.2.255").IsPrivate().Should().BeTrue();
|
||||
IPAddress.Parse("198.18.0.1").IsPrivate().Should().BeTrue();
|
||||
IPAddress.Parse("198.19.255.255").IsPrivate().Should().BeTrue();
|
||||
|
||||
IPAddress.Parse("9.255.255.255").IsPrivate().Should().BeFalse();
|
||||
IPAddress.Parse("91.63.176.12").IsPrivate().Should().BeFalse();
|
||||
IPAddress.Parse("172.32.0.1").IsPrivate().Should().BeFalse();
|
||||
IPAddress.Parse("192.0.1.0").IsPrivate().Should().BeFalse();
|
||||
IPAddress.Parse("198.17.255.255").IsPrivate().Should().BeFalse();
|
||||
IPAddress.Parse("198.20.0.0").IsPrivate().Should().BeFalse();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ShouldMatchLocalhostIps()
|
||||
{
|
||||
IPAddress GetSlightlyDifferentIp(IPAddress address)
|
||||
{
|
||||
if (address.AddressFamily != AddressFamily.InterNetwork)
|
||||
{
|
||||
throw new Exception("Only supports IPv4");
|
||||
}
|
||||
byte[] bytes = address.GetAddressBytes();
|
||||
unchecked
|
||||
{
|
||||
while (bytes[3] is < 1 or > 253)
|
||||
{
|
||||
bytes[3]++;
|
||||
}
|
||||
bytes[3]++;
|
||||
}
|
||||
return new IPAddress(bytes);
|
||||
}
|
||||
|
||||
IPAddress.Parse("127.0.0.1").IsLocalhost().Should().BeTrue();
|
||||
IPAddress.Parse("127.0.0.2").IsLocalhost().Should().BeTrue();
|
||||
IPAddress.Parse("192.168.0.255").IsLocalhost().Should().BeFalse();
|
||||
NetHelper.GetLanIp().IsLocalhost().Should().BeTrue();
|
||||
IPAddress differentIp = GetSlightlyDifferentIp(NetHelper.GetLanIp());
|
||||
differentIp.Should().NotBeEquivalentTo(NetHelper.GetLanIp());
|
||||
differentIp.IsLocalhost().Should().BeFalse();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user