ether_aton(3) — Linux manual page

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | ATTRIBUTES | STANDARDS | HISTORY | BUGS | SEE ALSO | COLOPHON

ether_aton(3)            Library Functions Manual           ether_aton(3)

NAME         top

       ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line,
       ether_ntoa_r, ether_aton_r - Ethernet address manipulation
       routines

LIBRARY         top

       Standard C library (libc, -lc)

SYNOPSIS         top

       #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         top

       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 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; '#'
       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 β€”for example, have the same length as
       lineβ€”.

       The functions ether_ntoa_r() and ether_aton_r() are reentrant
       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 {
               uint8_t ether_addr_octet[6];
           }

ATTRIBUTES         top

       For an explanation of the terms used in this section, see
       attributes(7).
       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
       β”‚ Interface                          β”‚ Attribute     β”‚ Value     β”‚
       β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
       β”‚ ether_aton(), ether_ntoa()         β”‚ Thread safety β”‚ MT-Unsafe β”‚
       β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
       β”‚ ether_ntohost(), ether_hostton(),  β”‚ Thread safety β”‚ MT-Safe   β”‚
       β”‚ ether_line(), ether_ntoa_r(),      β”‚               β”‚           β”‚
       β”‚ ether_aton_r()                     β”‚               β”‚           β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

STANDARDS         top

       None.

HISTORY         top

       4.3BSD, SunOS.

BUGS         top

       In glibc 2.2.5 and earlier, the implementation of ether_line() is
       broken.

SEE ALSO         top

       ethers(5)

COLOPHON         top

       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report
       for this manual page, see
       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
       This page was obtained from the tarball man-pages-6.18.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2026-05-24.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to
       man-pages@man7.org

Linux man-pages 6.18            2026-02-08                  ether_aton(3)

Pages that refer to this page: getent(1)