SINOPSIS
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int inet_pton(int af, const char *src, void *dst);
DESCRIPCIÓN
Esta función convierte la cadena de caracteres src en una estructura de dirección de red de la familia af , y copia la estructura de dirección de red a dst.inet_pton(3) extiende la función de inet_addr(3) para soportar múltiples familias de direcciones, inet_addr(3) está considerada obsoleta hoy en día en favor de inet_pton(3). Las siguientes familias de direcciones están soportadas actualmente:
- AF_INET
- src apunta a una cadena de caracteres que contiene una dirección de red IPv4 en el formato decimal con puntos, "ddd.ddd.ddd.ddd". La dirección es convertida a una estructura in_addr y copiada a dst, que debe tener sizeof(struct in_addr) bytes de longitud.
- AF_INET6
- src apunta a una cadena de caracters que contiene una dirección de red IPv6 en cualquier formato de dirección IPv6 permitido. La dirección es convertida a una estructura in6_addr y copiada a dst, que debe tener sizeof(struct in6_addr) bytes de longitud.
Ciertos formatos hexadecimales y octales antiguos de direcciones AF_INET no están soportados por inet_pton, que los rechaza.
VALOR DEVUELTO
inet_pton devuelve un valor negativo y asigna a errno el valor EAFNOSUPPORT si af no contiene una familia de direcciones válida. Devuelve cero si src no contiene una cadena de caracteres que represente una dirección de red válida en la familia de direcciones especificada. Devuelve un valor positivo si la dirección de red fue convertida con éxito.FALLOS
AF_INET6 no reconoce direcciones IPv4. Se debe pasar una dirección IPv4 debidamente mapeada a IPv6 en src en su lugar.