ether_hostton

ETHER_ATON(3)              Linux Programmer's 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

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  buf-
       fer,  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  at-
       tributes(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()                    |               |           |
       +----------------------------------+---------------+-----------+
CONFORMING TO
       4.3BSD, SunOS.

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

SEE ALSO
       ethers(5)

COLOPHON
       This page is part of release 5.05 of the Linux  man-pages  project.   A
       description  of  the project, information about reporting bugs, and the
       latest    version    of    this    page,    can     be     found     at
       https://www.kernel.org/doc/man-pages/.

GNU                               2017-09-15                     ETHER_ATON(3)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2024 Hurricane Electric. All Rights Reserved.