diff options
Diffstat (limited to 'man3/ether_aton.3')
-rw-r--r-- | man3/ether_aton.3 | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/man3/ether_aton.3 b/man3/ether_aton.3 new file mode 100644 index 000000000..a74e3515c --- /dev/null +++ b/man3/ether_aton.3 @@ -0,0 +1,116 @@ +.\" Hey Emacs! This file is -*- nroff -*- source. +.\" +.\" Copyright 2002 Ian Redfern (redferni@logica.com) +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" +.\" References consulted: +.\" Linux libc source code +.\" FreeBSD 4.4 man pages +.\" +.\" Minor additions, aeb, 2002-07-20 +.\" +.TH ETHER_ATON 3 2002-07-20 "BSD" "Linux Programmer's Manual" +.SH NAME +ether_aton, ether_ntoa, ether_ntohost, ether_hostton, ether_line, +ether_ntoa_r, ether_aton_r \- Ethernet address manipulation routines +.SH SYNOPSIS +.nf +.B #include <netinet/ether.h> +.sp +.BI "char *" +.BI "ether_ntoa(const struct ether_addr *" addr ); +.sp +.BI "struct ether_addr *" +.BI "ether_aton(const char *" asc ); +.sp +.BI "int" +.BI "ether_ntohost(char *" hostname ", const struct ether_addr *" addr ); +.sp +.BI "int" +.BI "ether_hostton(const char *" hostname ", struct ether_addr *" addr ); +.sp +.BI "int" +.BI "ether_line(const char *" line ", struct ether_addr *" addr , +.BI " char *" hostname ); +.sp +/* GNU extensions */ +.br +.BI "char *" +.BI "ether_ntoa_r(const struct ether_addr *" addr ", char *" buf ); +.sp +.BI "struct ether_addr *" +.BI "ether_aton_r(const char *" asc ", struct ether_addr *" addr ); +.fi +.SH DESCRIPTION +\fBether_aton()\fP converts the 48-bit Ethernet host address \fIasc\fP +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. \fBether_aton\fP returns NULL if the address is invalid. +.PP +The \fBether_ntoa()\fP function converts the Ethernet host address +\fIaddr\fP given in network byte order to a string in standard +hex-digits-and-colons notation, omitting leading zeroes. +The string is returned in a statically allocated buffer, +which subsequent calls will overwrite. +.PP +The \fBether_ntohost()\fP function maps an Ethernet address to the +corresponding hostname in +.B /etc/ethers +and returns non-zero if it cannot be found. +.PP +The \fBether_hostton()\fP function maps a hostname to the +corresponding Ethernet address in +.B /etc/ethers +and returns non-zero if it cannot be found. +.PP +The \fBether_line()\fP function parses a line in +.B /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 to by +.I hostname +must be sufficiently long, e.g., have the same length as +.IR line . +.PP +The functions \fBether_ntoa_r\fP and \fBether_aton_r\fP are re-entrant +threadsafe versions of \fBether_ntoa\fP and \fBether_aton\fP +respectively, and do not use static buffers. +.PP +The structure \fIether_addr\fP is defined in \fInet/ethernet.h\fP as: +.sp +.RS +.nf +.ta 8n 16n +struct ether_addr { + u_int8_t ether_addr_octet[6]; +} +.ta +.fi +.RE +.SH BUGS +The glibc 2.2.5 implementation of ether_line() is broken. +.SH "CONFORMING TO" +BSD 4.3, SunOS +.SH "SEE ALSO" +.BR ethers (5) |