ETHERS(3) System Programmer's Manual ETHERS(3) NAME ether_aton, ether_ntoa, ether_addr, ether_ntohost, ether_hostton, ether_line - get ethers entry SYNOPSIS #include <netinet/if_ether.h> char * ether_ntoa(struct ether_addr *e) struct ether_addr * ether_aton(char *s) int ether_ntohost(char *hostname, struct ether_addr *e) int ether_hostton(char *hostname, struct ether_addr *e) int ether_line(char *l, struct ether_addr *e, char *hostname) DESCRIPTION Ethernet addresses are represented by the following structure: struct ether_addr { u_int8_t ether_addr_octet[6]; }; The ether_ntoa() function converts this structure into an ASCII string of the form ``xx:xx:xx:xx:xx:xx'', consisting of 6 hexadecimal numbers sepa- rated by colons. It returns a pointer to a static buffer that is reused for each call. The ether_aton() converts an ASCII string of the same form and to a structure containing the 6 octets of the address. It re- turns a pointer to a static structure that is reused for each call. The ether_ntohost() and ether_hostton() functions interrogate the database mapping host names to Ethernet addresses, /etc/ethers. The ether_ntohost() function looks up the given Ethernet address and writes the associated host name into the character buffer passed. This buffer should be MAXHOSTNAMELEN characters in size. The ether_hostton() func- tion looks up the given host name and writes the associated Ethernet ad- dress into the structure passed. Both functions return zero if they find the requested host name or address, and -1 if not. Each call reads /etc/ethers from the beginning; if a `+' appears alone on a line in the file, then ether_hostton() will consult the ethers.byname YP map, and ether_ntohost() will consult the ethers.byaddr YP map. The ether_line() function parses a line from the /etc/ethers file and fills in the passed struct ether_addr and character buffer with the Eth- ernet address and host name on the line. It returns zero if the line was successfully parsed and -1 if not. The character buffer should be MAXHOSTNAMELEN characters in size. FILES /etc/ethers SEE ALSO ethers(5) HISTORY The ether_ntoa(), ether_aton(), ether_ntohost(), ether_hostton(), and ether_line() functions were adopted from SunOS and appeared in BUGS The data space used by these functions is static; if future use requires the data, it should be copied before any subsequent calls to these func- tions overwrite it. BSD Experimental December 16, 1993 2 |