dwww Home | Manual pages | Find package

ether_aton(3)              Library Functions 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

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 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 no-
       tation, 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  corre-
       sponding  hostname  in  /etc/ethers and returns nonzero if it cannot be
       found.

       The ether_hostton() function maps a hostname to the corresponding  Eth-
       ernet 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 suffi-
       ciently 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
       For  an  explanation  of  the  terms  used in this section, see attrib-
       utes(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
       None.

HISTORY
       4.3BSD, SunOS.

BUGS
       In glibc 2.2.5 and earlier, the implementation of ether_line() is  bro-
       ken.

SEE ALSO
       ethers(5)

Linux man-pages 6.7               2023-10-31                     ether_aton(3)

Generated by dwww version 1.16 on Mon Jul 13 11:01:20 CEST 2026.