i need a C program which will do the above task...

Recommended Answers

All 4 Replies

i posted this thread after searching on net...

now if u have any matter directly related to the topic....post it..

Member Avatar for iamthwee

If the hostname resolves can't you just ping it and collect the ip information?

IPv4: man gethostbyname http://www.freebsd.org/cgi/man.cgi?query=gethostbyname&sektion=3&apropos=0&manpath=FreeBSD+7.0-stable

IPv6 and other address families: gethostbyname2 getaddrinfo http://www.freebsd.org/cgi/man.cgi?query=getaddrinfo&sektion=3&apropos=0&manpath=FreeBSD+7.0-stable

// IPv4 address lookup
#include <netdb.h>
#include <arpa/inet.h>
#include <iostream>

int main()
{
  const char* const host = "www.toolbar.google.com" ;
  const hostent* host_info = 0 ;

  for( int attempt=0 ; (host_info==0) && (attempt<3) ; ++attempt )
    host_info = gethostbyname(host) ;

  if(host_info)
  {
    std::cout << "host: " << host_info->h_name << '\n' ;

    for( int i=0 ; host_info->h_aliases[i] ; ++i )
      std::cout << " aka: " << host_info->h_aliases[i] << '\n' ;

    for( int i=0 ; host_info->h_addr_list[i] ; ++i )
    {
      const in_addr* address = (in_addr*)host_info->h_addr_list[i] ;
      std::cout << " address: " << inet_ntoa( *address ) << '\n' ;
    }
  }
  else herror( "error" ) ;
}
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.