ABCDEFGHIJKLMNOPQRSTUVWXYZ

ether_line

ETHER_ATON(3)              Linux Programmer's Manual             ETHER_ATON(3)



NAME
       ether_aton,   ether_ntoa,  ether_ntohost,  ether_hosttonn,  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
       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  stati-
       cally 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 non-zero if it  cannot  be
       found.

       The  ether_hostton() function maps a hostname to the corresponding Eth-
       ernet 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 at by  hostname  must  be  suffi-
       ciently 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];
              }

BUGS
       The glibc 2.2.5 implementation of ether_line() is broken.

CONFORMING TO
       BSD 4.3, SunOS

SEE ALSO
       ethers(5)



BSD                               2002-07-20                     ETHER_ATON(3)