33   os << m_minAddress << 
" <-> " << m_maxAddress;
 
   39   using boost::asio::ip::address_v4;
 
   40   static Network range = 
Network(address_v4(0), address_v4(0xFFFFFFFF));
 
   47   using boost::asio::ip::address_v6;
 
   48   static address_v6::bytes_type maxV6 = {{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 
   49                                           0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}};
 
   67   using namespace boost::asio;
 
   69   std::string networkStr;
 
   72   size_t position = networkStr.find(
'/');
 
   73   if (position == std::string::npos)
 
   75       network.m_minAddress = ip::address::from_string(networkStr);
 
   76       network.m_maxAddress = ip::address::from_string(networkStr);
 
   80       ip::address address = ip::address::from_string(networkStr.substr(0, position));
 
   81       size_t mask = boost::lexical_cast<
size_t>(networkStr.substr(position+1));
 
   85           ip::address_v4::bytes_type maskBytes = boost::initialized_value;
 
   86           for (
size_t i = 0; i < mask; i++)
 
   88               size_t byteId = i / 8;
 
   89               size_t bitIndex = 7 - i % 8;
 
   90               maskBytes[byteId] |= (1 << bitIndex);
 
   93           ip::address_v4::bytes_type addressBytes = address.to_v4().to_bytes();
 
   94           ip::address_v4::bytes_type min;
 
   95           ip::address_v4::bytes_type max;
 
   97           for (
size_t i = 0; i < addressBytes.size(); i++)
 
   99               min[i] = addressBytes[i] & maskBytes[i];
 
  100               max[i] = addressBytes[i] | ~(maskBytes[i]);
 
  103           network.m_minAddress = ip::address_v4(min);
 
  104           network.m_maxAddress = ip::address_v4(max);
 
  108           ip::address_v6::bytes_type maskBytes = boost::initialized_value;
 
  109           for (
size_t i = 0; i < mask; i++)
 
  111               size_t byteId = i / 8;
 
  112               size_t bitIndex = 7 - i % 8;
 
  113               maskBytes[byteId] |= (1 << bitIndex);
 
  116           ip::address_v6::bytes_type addressBytes = address.to_v6().to_bytes();
 
  117           ip::address_v6::bytes_type min;
 
  118           ip::address_v6::bytes_type max;
 
  120           for (
size_t i = 0; i < addressBytes.size(); i++)
 
  122               min[i] = addressBytes[i] & maskBytes[i];
 
  123               max[i] = addressBytes[i] | ~(maskBytes[i]);
 
  126           network.m_minAddress = ip::address_v6(min);
 
  127           network.m_maxAddress = ip::address_v6(max);
 
void print(std::ostream &os) const 
 
std::ostream & operator<<(std::ostream &os, const Face &face)
 
static const Network & getMaxRangeV4()
 
static const Network & getMaxRangeV6()
 
std::istream & operator>>(std::istream &is, Network &network)