ETHER_ATON(3) Linux Programmer's Manual ETHER_ATON(3)NAME
ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line,
ether_ntoa_r, ether_aton_r - Ethernet address manipulation routines
SYNOPSIS
#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);
/* GNU extensions */
char *
ether_ntoa_r(const struct ether_addr *addr, char *buf);
struct ether_addr *
ether_aton_r(const char *asc, struct ether_addr *addr);
DESCRIPTIONether_aton() converts the 48-bit Ethernet host address asc from the
standard hex-digits-and-colons notation into binary data in network
byte order and returns a pointer to it in a statically allocated buf‐
fer, which subsequent calls will overwrite. ether_aton() returns NULL
if the address is invalid.
The ether_ntoa() function converts the Ethernet host address addr given
in network byte order to a string in standard hex-digits-and-colons
notation, omitting leading zeroes. The string is returned in a stati‐
cally allocated buffer, which subsequent calls will overwrite.
The ether_ntohost() function maps an Ethernet address to the corre‐
sponding hostname in /etc/ethers and returns non-zero if it cannot be
found.
The ether_hostton() function maps a hostname to the corresponding Eth‐
ernet address in /etc/ethers and returns non-zero if it cannot be
found.
The ether_line() function parses a line in /etc/ethers format (ethernet
address followed by whitespace followed by hostname; '#' introduces a
comment) and returns an address and hostname pair, or non-zero if it
cannot be parsed. The buffer pointed to by hostname must be suffi‐
ciently long, e.g., have the same length as line.
The functions ether_ntoa_r() and ether_aton_r() are re-entrant thread‐
safe versions of ether_ntoa() and ether_aton() respectively, and do not
use static buffers.
The structure ether_addr is defined in net/ethernet.h as:
struct ether_addr {
u_int8_t ether_addr_octet[6];
}
BUGS
The glibc 2.2.5 implementation of ether_line() is broken.
CONFORMING TO
4.3BSD, SunOS
SEE ALSOethers(5)BSD 2002-07-20 ETHER_ATON(3)