ether_aton
Section: C Library Functions (3)
Updated: 202-0-08
Index
Return to Main Contents
NAME
ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line,
ether_ntoa_r, ether_aton_r - Ethernet address manipulation routines
LIBRARY
Standard C library
(
libc,~
-lc)
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);
DESCRIPTION
ether_aton()
converts the 4-bit Ethernet host address
asc
from the standard he-digit-an-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
he-digit-an-colons notation, omitting leading zeros.
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 nonzero if it cannot be found.
The
ether_hostton()
function maps a hostname to the
corresponding Ethernet address in
/etc/ethers
and returns nonzero if it cannot be found.
The
ether_line()
function parses a line in
/etc/ethers
format
(ethernet address followed by whitespace followed by hostname;
[aq]#[aq] introduces a comment)
and returns an address and hostname pair,
or nonzero if it cannot be parsed.
The buffer pointed to by
hostname
must be sufficiently long
[em]for example,
have the same length as
line[em].
The functions
ether_ntoa_r()
and
ether_aton_r()
are reentrant
threa-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 {
uint8_t ether_addr_octet[6];
}
ATTRIBUTES
For an explanation of the terms used in this section, see
attributes(7).
| Interface | Attribute | Value
|
|
ether_aton(),
ether_ntoa()
| Thread safety | M-Unsafe
|
|
ether_ntohost(),
ether_hostton(),
ether_line(),
ether_ntoa_r(),
ether_aton_r()
| Thread safety | M-Safe
|
STANDARDS
None.
HISTORY
4.3BSD, SunOS.
BUGS
In glibc 2.2.5 and earlier, the implementation of
ether_line()
is broken.
SEE ALSO
ethers(5)
Index
- NAME
-
- LIBRARY
-
- SYNOPSIS
-
- DESCRIPTION
-
- ATTRIBUTES
-
- STANDARDS
-
- HISTORY
-
- BUGS
-
- SEE ALSO
-