121 lines
2.9 KiB
Groff
121 lines
2.9 KiB
Groff
|
.\" $NetBSD: ethers.3,v 1.13 2003/04/16 13:34:41 wiz Exp $
|
||
|
.\"
|
||
|
.\" Written by roland@frob.com. Public domain.
|
||
|
.\"
|
||
|
.Dd November 2, 1997
|
||
|
.Dt ETHERS 3
|
||
|
.Os
|
||
|
.Sh NAME
|
||
|
.Nm ether_ntoa ,
|
||
|
.Nm ether_aton ,
|
||
|
.Nm ether_ntohost ,
|
||
|
.Nm ether_hostton ,
|
||
|
.Nm ether_line ,
|
||
|
.Nd get ethers entry
|
||
|
.Sh LIBRARY
|
||
|
.Lb libc
|
||
|
.Sh SYNOPSIS
|
||
|
.In sys/types.h
|
||
|
.In sys/socket.h
|
||
|
.In net/if.h
|
||
|
.In net/if_ether.h
|
||
|
.Ft char *
|
||
|
.Fn ether_ntoa "const struct ether_addr *e"
|
||
|
.Ft struct ether_addr *
|
||
|
.Fn ether_aton "const char *s"
|
||
|
.Ft int
|
||
|
.Fn ether_ntohost "char *hostname" "const struct ether_addr *e"
|
||
|
.Ft int
|
||
|
.Fn ether_hostton "const char *hostname" "struct ether_addr *e"
|
||
|
.Ft int
|
||
|
.Fn ether_line "const char *line" "struct ether_addr *e" "char *hostname"
|
||
|
.Sh DESCRIPTION
|
||
|
Ethernet addresses are represented by the
|
||
|
following structure:
|
||
|
.Bd -literal -offset indent
|
||
|
struct ether_addr {
|
||
|
u_char ether_addr_octet[6];
|
||
|
};
|
||
|
.Ed
|
||
|
.Pp
|
||
|
The
|
||
|
.Fn ether_ntoa
|
||
|
function converts this structure into an ASCII string of the form
|
||
|
``xx:xx:xx:xx:xx:xx'', consisting of 6 hexadecimal numbers separated
|
||
|
by colons. It returns a pointer to a static buffer that is reused for
|
||
|
each call.
|
||
|
The
|
||
|
.Fn ether_aton
|
||
|
converts an ASCII string of the same form and to a structure
|
||
|
containing the 6 octets of the address. It returns a pointer to a
|
||
|
static structure that is reused for each call.
|
||
|
.Pp
|
||
|
The
|
||
|
.Fn ether_ntohost
|
||
|
and
|
||
|
.Fn ether_hostton
|
||
|
functions interrogate the data base mapping host names to Ethernet
|
||
|
addresses,
|
||
|
.Pa /etc/ethers .
|
||
|
The
|
||
|
.Fn ether_ntohost
|
||
|
function looks up the given Ethernet address and writes the associated
|
||
|
host name into the character buffer passed.
|
||
|
The
|
||
|
.Fn ether_hostton
|
||
|
function looks up the given host name and writes the associated
|
||
|
Ethernet address into the structure passed. Both functions return
|
||
|
zero if they find the requested host name or address, and -1 if not.
|
||
|
Each call reads
|
||
|
.Pa /etc/ethers
|
||
|
from the beginning; if a + appears alone on a line in the file, then
|
||
|
.Fn ether_hostton
|
||
|
will consult the
|
||
|
.Pa ethers.byname
|
||
|
YP map, and
|
||
|
.Fn ether_ntohost
|
||
|
will consult the
|
||
|
.Pa ethers.byaddr
|
||
|
YP map.
|
||
|
.Pp
|
||
|
The
|
||
|
.Fn ether_line
|
||
|
function parses a line from the
|
||
|
.Pa /etc/ethers
|
||
|
file and fills in the passed ``struct ether_addr'' and character
|
||
|
buffer with the Ethernet address and host name on the line. It
|
||
|
returns zero if the line was successfully parsed and -1 if not.
|
||
|
.Pp
|
||
|
The
|
||
|
.Fa hostname
|
||
|
buffer for
|
||
|
.Fn ether_line
|
||
|
and
|
||
|
.Fn ether_ntohost
|
||
|
should be at least
|
||
|
.Dv MAXHOSTNAMELEN
|
||
|
+ 1
|
||
|
characters long, to prevent a buffer overflow during parsing.
|
||
|
.Sh FILES
|
||
|
.Bl -tag -width /etc/ethers -compact
|
||
|
.It Pa /etc/ethers
|
||
|
.El
|
||
|
.Sh SEE ALSO
|
||
|
.Xr ethers 5
|
||
|
.Sh HISTORY
|
||
|
The
|
||
|
.Fn ether_ntoa ,
|
||
|
.Fn ether_aton ,
|
||
|
.Fn ether_ntohost ,
|
||
|
.Fn ether_hostton ,
|
||
|
and
|
||
|
.Fn ether_line
|
||
|
functions were adopted from
|
||
|
.Tn SunOS
|
||
|
and appeared in
|
||
|
.Nx 1.0 .
|
||
|
.Sh 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 functions overwrite it.
|