En C, existen algunas funciones que nos ayudarán a manipular direcciones IP. En esta sección se hablará de las funciones inet_addr() y inet_ntoa().
Por un lado, la función inet_addr() convierte una dirección IP en un entero largo sin signo (unsigned long int), por ejemplo:
(...) dest.sin_addr.s_addr = inet_addr("195.65.36.12"); (...) /*Recordar que esto sería así, siempre que tengamos una estructura "dest" del tipo sockaddr_in*/ |
Por otro lado, inet_ntoa() convierte a una cadena que contiene una dirección IP en un entero largo. Por ejemplo:
(...) char *ip; ip=inet_ntoa(dest.sin_addr); printf("La dirección es: %s\n",ip); (...) |
Se deberá recordar también que la función inet_addr() devuelve la dirección en formato de Ordenación de Bytes para Redes por lo que no necesitaremos llamar a htonl().