Originální popis anglicky:
ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line, ether_ntoa_r,
ether_aton_r - Ethernet address manipulation routines
Návod, kniha: Linux Programmer's Manual
#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);
ether_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 buffer, 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 statically
allocated buffer, which subsequent calls will overwrite.
The
ether_ntohost() function maps an Ethernet address to the
corresponding hostname in
/etc/ethers and returns non-zero if it cannot
be found.
The
ether_hostton() function maps a hostname to the corresponding
Ethernet 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 sufficiently long,
e.g., have the same length as
line.
The functions
ether_ntoa_r and
ether_aton_r are re-entrant
threadsafe 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];
}
The glibc 2.2.5 implementation of ether_line() is broken.
BSD 4.3, SunOS
ethers(5)