ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line, ether_ntoa_r, ether_aton_r — Ethernet address manipulation routines
#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];};
ethers(5)
|
|