Monday, 06 October 2008  
Latest Forums
Boost-Net-Dns Library PDF Print E-mail
(2 votes)
Written by Andreas Haberstroh   
Thursday, 23 August 2007
Rerelease of the asio::dns Library as Boost-Net-Dns Library.
New version is 0.1.1, adds some features and fixes some things too.

 Boost-Net-Dns is a cross-platform C++ library for sending and receiving DNS resource records.

License

 Boost-Net-Dns is release under the Boost Software License.

Dependencies

 Boost-Net-Dns  requires Boost version 1.33 or later and asio version 0.3.8.

Using  Boost-Net-Dns

The  Boost-Net-Dns library is relatively simplistic in design. A simple example of making a DNS request is as follows:

#include <boost/asio.hpp>
#include <boost/net/resolve.hpp>
using namespace boost::asio;

using namespace boost::net;

int main(int argc, char* argv[])
{
   dns::message dns_message("cnn.com", dns::type_a );
   dns::resolve resolver;

   ip::address a_gltd_servers_net( ip::address::from_string("192.5.6.30") );
   resolver.addServer( a_gltd_servers_net );

   ip::address b_gltd_servers_net( ip::address::from_string("192.33.14.30") );
   resolver.addServer( b_gltd_servers_net );

   ip::address c_gltd_servers_net( ip::address::from_string("192.26.92.30") );
   resolver.addServer( c_gltd_servers_net );

   ip::address d_gltd_servers_net( ip::address::from_string("192.31.80.30") );
   resolver.addServer( d_gltd_servers_net );

   ip::address e_gltd_servers_net( ip::address::from_string("192.12.94.30") );
   resolver.addServer( e_gltd_servers_net );

   ip::address f_gltd_servers_net( ip::address::from_string("192.35.51.30") );
   resolver.addServer( f_gltd_servers_net );

   ip::address g_gltd_servers_net( ip::address::from_string("192.42.93.30") );
   resolver.addServer( g_gltd_servers_net );

   ip::address h_gltd_servers_net( ip::address::from_string("192.54.112.30") );
   resolver.addServer( h_gltd_servers_net );

   ip::address i_gltd_servers_net( ip::address::from_string("192.43.172.30") );
   resolver.addServer( i_gltd_servers_net );

   ip::address j_gltd_servers_net( ip::address::from_string("192.48.79.30") );
   resolver.addServer( j_gltd_servers_net );

   ip::address k_gltd_servers_net( ip::address::from_string("192.52.178.30") );
   resolver.addServer( k_gltd_servers_net );

   ip::address l_gltd_servers_net( ip::address::from_string("192.41.162.30") );
   resolver.addServer( l_gltd_servers_net );

   dns::message dns_response = resolver.query(dns_message);

   return 0;
}

Changes since 1.0

1.1

  • Adds
  1. boost::ptr_vector to handle dns::message::records_t.
  2. throw in readDomainName when dns packet is mangled
  3. unknown_resource for unknown RR's. Following 1035's specification
  4. A6 and SRV support for resource records
  • Fixes
  1. Memory leak in dns::message::records_t
  • Changes
  1. Namespace now changed to boost::net::dns as per Christopher Kohlhoff's email dated 7/19/2007 10:05 PM. Planning on implementing DHCP library to fit into the boost::net namespace.
Comments
Add NewSearch
Rene Escudero   | 190.81.48.50 | 2008-07-24 10:04:58
HI, I don't find the Resolve.hpp file into Boost Library or Asio, so i can't implement this functionality

Please help me with this.
Write comment
Name:
Website:
Title:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
 

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.

Last Updated ( Wednesday, 27 February 2008 )
 
< Prev   Next >
Top