check local address

This commit is contained in:
orignal 2021-02-02 19:29:13 -05:00
parent 05c7aacfa5
commit a74f685a5d
3 changed files with 14 additions and 1 deletions

View file

@ -461,6 +461,17 @@ namespace net
#endif
}
bool IsLocalAddress (const boost::asio::ip::address& addr)
{
auto mtu = // TODO: implement better
#ifdef _WIN32
GetMTUWindows(addr, 0);
#else
GetMTUUnix(addr, 0);
#endif
return mtu > 0;
}
bool IsInReservedRange (const boost::asio::ip::address& host)
{
// https://en.wikipedia.org/wiki/Reserved_IP_addresses

View file

@ -189,6 +189,7 @@ namespace util
int GetMTU (const boost::asio::ip::address& localAddress);
const boost::asio::ip::address GetInterfaceAddress (const std::string & ifname, bool ipv6=false);
boost::asio::ip::address_v6 GetYggdrasilAddress ();
bool IsLocalAddress (const boost::asio::ip::address& addr);
bool IsInReservedRange (const boost::asio::ip::address& host);
bool IsYggdrasilAddress (const boost::asio::ip::address& addr);
}