|
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. For instance, if you are trying to find the MX record of a domain, you would use this resolver to find that. 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.01.1boost::ptr_vector to handle dns::message::records_t. throw in readDomainName when dns packet is mangled unknown_resource for unknown RR's. Following 1035's specification A6 and SRV support for resource records
Memory leak in dns::message::records_t
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.
|
|
Last Updated ( Saturday, 23 January 2010 )
|