NOMBRE¶
ether_aton, ether_ntoa, ether_ntohost, ether_hosttonn, ether_line, ether_ntoa_r,
ether_aton_r - rutinas de manipulación de direcciones Ethernet
SINOPSIS¶
#include <netinet/ether.h>
char *
ether_ntoa(const struct ether_addr *addr);
struct ether_addr *
ether_aton(const char *asc);
int
ether_ntohost(char *hostname, const struct ether_addr *addr);
int
ether_hostton(const char *hostname, struct ether_addr *addr);
int
ether_line(const char *line, struct ether_addr *addr,
char *hostname);
/* extensiones de GNU */
char *
ether_ntoa_r(const struct ether_addr *addr, char *buf);
struct ether_addr *
ether_aton_r(const char *asc, struct ether_addr *addr);
DESCRIPCIÓN¶
ether_aton() convierte la dirección de host Ethernet de 48 bits
asc en la notación estándar de
dígitos-hexadecimales-y-puntos a datos binarios en el orden de bytes de
la red y devuelve un puntero a éstos en un buffer reservado
estáticamente, que será sobreescrito por llamadas posteriores.
ether_aton devuelve NULL si la dirección no es válida.
La función
ether_ntoa() convierte la dirección de host
Ethernet
addr dada en el orden de bytes de la red a una cadena en la
notación estándar de dígitos-hexadecimales-y-puntos,
omitiendo los ceros del principio. La cadena se devuelve en almacenamiento
estático, que será sobreescrito por llamadas posteriores.
La función
ether_ntohost() asocia una dirección Ethernet
con su correspondiente nombre de host en
/etc/ethers y devuelve un
valor distinto de cero si no se encontró ninguna correspondencia.
La función
ether_hostton() asocia un nombre de host con su
correspondiente dirección Ethernet en
/etc/ethers y devuelve un
valor distinto de cero si no se encontró ninguna correspondencia.
La función
ether_line() analiza una línea con el formato de
/etc/ethers (dirección ethernet seguida de espacios y seguida
por el nombre de host; '#' introduce un comentario) y devuelve un par
dirección - nombre de host, o un valor distinto de cero si no pudo ser
analizada. El buffer apuntado por
hostname debe ser suficientemente
grande, p.e., tener la misma longitud que
line.
Las funciones
ether_ntoa_r y
ether_aton_r son versiones
reentrantes e hilo-seguro de
ether_ntoa y
ether_aton
respectivamente, y no usan buffers estáticos.
La estructura
ether_addr está definida en
net/ethernet.h
como:
struct ether_addr {
u_int8_t ether_addr_octet[6];
}
FALLOS¶
La implementación de glibc 2.2.5 de ether_line() no funciona
correctamente.
BSD 4.3, SunOS
VÉASE TAMBIÉN¶
ethers(5)