mirror of
https://codeberg.org/anoncontributorxmr/monero.git
synced 2024-11-29 10:43:14 +00:00
unit_tests: add tests for local IP range detection
This commit is contained in:
parent
f8dd433110
commit
5db9e3c28e
1 changed files with 32 additions and 0 deletions
|
@ -45,6 +45,7 @@
|
||||||
#include "boost/archive/portable_binary_oarchive.hpp"
|
#include "boost/archive/portable_binary_oarchive.hpp"
|
||||||
#include "hex.h"
|
#include "hex.h"
|
||||||
#include "net/net_utils_base.h"
|
#include "net/net_utils_base.h"
|
||||||
|
#include "net/local_ip.h"
|
||||||
#include "p2p/net_peerlist_boost_serialization.h"
|
#include "p2p/net_peerlist_boost_serialization.h"
|
||||||
#include "span.h"
|
#include "span.h"
|
||||||
#include "string_tools.h"
|
#include "string_tools.h"
|
||||||
|
@ -648,3 +649,34 @@ TEST(NetUtils, NetworkAddress)
|
||||||
EXPECT_THROW(address1.as<epee::net_utils::ipv4_network_address>(), std::bad_cast);
|
EXPECT_THROW(address1.as<epee::net_utils::ipv4_network_address>(), std::bad_cast);
|
||||||
EXPECT_NO_THROW(address1.as<custom_address>());
|
EXPECT_NO_THROW(address1.as<custom_address>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool is_local(const char *s)
|
||||||
|
{
|
||||||
|
uint32_t ip;
|
||||||
|
CHECK_AND_ASSERT_THROW_MES(epee::string_tools::get_ip_int32_from_string(ip, s), std::string("Invalid IP address: ") + s);
|
||||||
|
return epee::net_utils::is_ip_local(ip);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(NetUtils, PrivateRanges)
|
||||||
|
{
|
||||||
|
ASSERT_EQ(is_local("10.0.0.0"), true);
|
||||||
|
ASSERT_EQ(is_local("10.255.0.0"), true);
|
||||||
|
ASSERT_EQ(is_local("127.0.0.0"), false); // loopback is not considered local
|
||||||
|
ASSERT_EQ(is_local("192.167.255.255"), false);
|
||||||
|
ASSERT_EQ(is_local("192.168.0.0"), true);
|
||||||
|
ASSERT_EQ(is_local("192.168.255.255"), true);
|
||||||
|
ASSERT_EQ(is_local("192.169.0.0"), false);
|
||||||
|
ASSERT_EQ(is_local("172.0.0.0"), false);
|
||||||
|
ASSERT_EQ(is_local("172.15.255.255"), false);
|
||||||
|
ASSERT_EQ(is_local("172.16.0.0"), true);
|
||||||
|
ASSERT_EQ(is_local("172.16.255.255"), true);
|
||||||
|
ASSERT_EQ(is_local("172.31.255.255"), true);
|
||||||
|
ASSERT_EQ(is_local("172.32.0.0"), false);
|
||||||
|
ASSERT_EQ(is_local("0.0.0.0"), false);
|
||||||
|
ASSERT_EQ(is_local("255.255.255.254"), false);
|
||||||
|
ASSERT_EQ(is_local("11.255.255.255"), false);
|
||||||
|
ASSERT_EQ(is_local("0.0.0.10"), false);
|
||||||
|
ASSERT_EQ(is_local("0.0.168.192"), false);
|
||||||
|
ASSERT_EQ(is_local("0.0.30.172"), false);
|
||||||
|
ASSERT_EQ(is_local("0.0.30.127"), false);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue