1.\" 2.\" Written by roland@frob.com. Public domain. 3.\" 4.Dd December 16, 1993 5.Dt ETHERS 3 6.Os NetBSD 7.Sh NAME 8.Nm ether_ntoa , 9.Nm ether_addr , 10.Nm ether_ntohost , 11.Nm ether_hostton , 12.Nm ether_line , 13.Nd get ethers entry 14.Sh SYNOPSIS 15.Fd #include <netinet/if_ether.h> 16.Ft char * 17.Fn ether_ntoa "struct ether_addr *e" 18.Ft struct ether_addr * 19.Fn ether_aton "char *s" 20.Fn ether_ntohost "char *hostname" "struct ether_addr *e" 21.Fn ether_hostton "char *hostname" "struct ether_addr *e" 22.Fn ether_line "char *l" "struct ether_addr *e" "char *hostname" 23.Sh DESCRIPTION 24Ethernet addresses are represented by the 25following structure: 26.Bd -literal -offset indent 27struct ether_addr { 28 u_char ether_addr_octet[6]; 29}; 30.Ed 31.Pp 32The 33.Fn ether_ntoa 34function converts this structure into an ASCII string of the form 35``xx:xx:xx:xx:xx:xx'', consisting of 6 hexadecimal numbers separated 36by colons. It returns a pointer to a static buffer that is reused for 37each call. 38The 39.Fn ether_aton 40converts an ASCII string of the same form and to a structure 41containing the 6 octets of the address. It returns a pointer to a 42static structure that is reused for each call. 43.Pp 44The 45.Fn ether_ntohost 46and 47.Fn ether_hostton 48functions interrogate the data base mapping host names to Ethernet 49addresses, 50.Pa /etc/ethers . 51The 52.Fn ether_ntohost 53function looks up the given Ethernet address and writes the associated 54host name into the character buffer passed. 55The 56.Fn ether_hostton 57function looks up the given host name and writes the associated 58Ethernet address into the structure passed. Both functions return 59zero if they find the requested host name or address, and -1 if not. 60Each call reads 61.Pa /etc/ethers 62from the beginning; if a + appears alone on a line in the file, then 63.Fn ether_hostton 64will consult the 65.Pa ethers.byname 66YP map, and 67.Fn ether_ntohost 68will consult the 69.Pa ethers.byaddr 70YP map. 71.Pp 72The 73.Fn ether_line 74function parses a line from the 75.Pa /etc/ethers 76file and fills in the passed ``struct ether_addr'' and character 77buffer with the Ethernet address and host name on the line. It 78returns zero if the line was successfully parsed and -1 if not. 79.Sh FILES 80.Bl -tag -width /etc/ethers -compact 81.It Pa /etc/ethers 82.El 83.Sh SEE ALSO 84.Xr ethers 5 85.Sh HISTORY 86The 87.Fn ether_ntoa , 88.Fn ether_aton , 89.Fn ether_ntohost , 90.Fn ether_hostton , 91and 92.Fn ether_line 93functions were adopted from SunOS and appeared in 94NetBSD 0.9b. 95.Sh BUGS 96The data space used by these functions is static; if future use 97requires the data, it should be copied before any subsequent calls to 98these functions overwrite it. There is no way to restrict how many 99character will be written into the host name buffer passed. A very 100long line in 101.Pa /etc/ethers 102could overflow your buffer. 103