Una funzione per risolvere i nomi di dominio

Autore: Fabio Di Matteo
Ultima revisione: 26/07/2008

#include <netdb.h>
 
 
 
char* resolv(char* host){
	//Raccolgo in questa struttura informazioni sull'host
	//che serviranno per la risoluzione del nome.
	struct hostent *address=gethostbyname(host);
 
 
	if (address!=NULL){
		//struttura che servira per leggere l'ip
		struct in_addr addr;
 
		/*le info sull host sono racchiuse nel puntatore address
	 	*a noi serve sapere solo l'indirizzo ip, ovvero  address->h_name.
	 	*ma per stamparlo correttamente si deve mettere address->h_name in 
	 	*addr.s_addr in questo modo: addr.s_addr = *( (unsigned long *)address->h_addr);
	 	*in caso di fallimento la funzione gethostbyname restituisce NULL*/
		addr.s_addr = *( (unsigned long *)address->h_addr);
 
		return  inet_ntoa(addr);
	}else{
		return NULL ;
	}
}