2004-11-03 13:51:07 +00:00
|
|
|
.\" Copyright 2000 Sam Varshavchik <mrsam@courier-mta.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.
|
2007-04-12 22:42:49 +00:00
|
|
|
.\"
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" 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.
|
2007-04-12 22:42:49 +00:00
|
|
|
.\"
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
|
|
.\"
|
|
|
|
.\" References: RFC 2553
|
2010-09-04 05:19:26 +00:00
|
|
|
.TH GETIPNODEBYNAME 3 2010-09-04 "Linux" "Linux Programmer's Manual"
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH NAME
|
2007-04-12 22:42:49 +00:00
|
|
|
getipnodebyname, getipnodebyaddr, freehostent \- get network
|
2008-06-27 03:37:56 +00:00
|
|
|
hostnames and addresses
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH SYNOPSIS
|
|
|
|
.nf
|
|
|
|
.B #include <sys/types.h>
|
|
|
|
.B #include <sys/socket.h>
|
|
|
|
.B #include <netdb.h>
|
|
|
|
.sp
|
2007-12-23 08:20:39 +00:00
|
|
|
.BI "struct hostent *getipnodebyname(const char *" name ", int " af ,
|
|
|
|
.BI " int " flags ", int *" error_num );
|
2004-11-03 13:51:07 +00:00
|
|
|
.sp
|
2007-12-23 08:20:39 +00:00
|
|
|
.BI "struct hostent *getipnodebyaddr(const void *" addr ", size_t " len ,
|
2008-01-01 07:47:27 +00:00
|
|
|
.BI " int " af ", int *" "error_num" );
|
2004-11-03 13:51:07 +00:00
|
|
|
.sp
|
|
|
|
.BI "void freehostent(struct hostent *" "ip" );
|
|
|
|
.fi
|
|
|
|
.SH DESCRIPTION
|
2007-11-15 03:21:33 +00:00
|
|
|
These functions are deprecated (and unavailable in glibc).
|
2007-04-12 22:42:49 +00:00
|
|
|
Use
|
2004-11-03 13:51:07 +00:00
|
|
|
.BR getaddrinfo (3)
|
|
|
|
and
|
|
|
|
.BR getnameinfo (3)
|
|
|
|
instead.
|
|
|
|
.LP
|
|
|
|
The
|
2007-11-24 10:10:39 +00:00
|
|
|
.BR getipnodebyname ()
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-11-24 10:10:39 +00:00
|
|
|
.BR getipnodebyaddr ()
|
2004-11-03 13:51:07 +00:00
|
|
|
functions return the names and addresses of a network host.
|
|
|
|
These functions return a pointer to the
|
|
|
|
following structure:
|
|
|
|
.sp
|
2007-12-23 14:03:07 +00:00
|
|
|
.in +4n
|
2004-11-03 13:51:07 +00:00
|
|
|
.nf
|
clock_getres.2, clone.2, mbind.2, set_mempolicy.2, atan2.3, getipnodebyname.3, ilogb.3, lgamma.3, elf.5, capabilities.7, math_error.7: srcfix: Remove double space
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2011-09-27 03:17:10 +00:00
|
|
|
struct hostent {
|
2007-06-20 20:48:54 +00:00
|
|
|
char *h_name;
|
|
|
|
char **h_aliases;
|
|
|
|
int h_addrtype;
|
|
|
|
int h_length;
|
|
|
|
char **h_addr_list;
|
2007-07-16 18:40:37 +00:00
|
|
|
};
|
2007-12-23 14:03:07 +00:00
|
|
|
.in
|
2004-11-03 13:51:07 +00:00
|
|
|
.fi
|
|
|
|
.PP
|
|
|
|
These functions replace the
|
|
|
|
.BR gethostbyname (3)
|
|
|
|
and
|
|
|
|
.BR gethostbyaddr (3)
|
|
|
|
functions, which could only access the IPv4 network address family.
|
|
|
|
The
|
2007-11-24 10:10:39 +00:00
|
|
|
.BR getipnodebyname ()
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2007-11-24 10:10:39 +00:00
|
|
|
.BR getipnodebyaddr ()
|
2004-11-03 13:51:07 +00:00
|
|
|
functions can access multiple network address families.
|
|
|
|
.PP
|
|
|
|
Unlike the
|
|
|
|
.B gethostby
|
|
|
|
functions,
|
2007-06-23 07:56:56 +00:00
|
|
|
these functions return pointers to dynamically allocated memory.
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-11-24 10:10:39 +00:00
|
|
|
.BR freehostent ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function is used to release the dynamically allocated memory
|
|
|
|
after the caller no longer needs the
|
2007-06-20 22:07:01 +00:00
|
|
|
.I hostent
|
2004-11-03 13:51:07 +00:00
|
|
|
structure.
|
2008-07-10 20:53:08 +00:00
|
|
|
.SS getipnodebyname() arguments
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-11-24 10:10:39 +00:00
|
|
|
.BR getipnodebyname ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function
|
|
|
|
looks up network addresses for the host
|
|
|
|
specified by the
|
|
|
|
.I name
|
2008-07-10 20:53:08 +00:00
|
|
|
argument.
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
|
|
|
.I af
|
2008-07-10 20:53:08 +00:00
|
|
|
argument specifies one of the following values:
|
2004-11-03 13:51:07 +00:00
|
|
|
.TP
|
|
|
|
.B AF_INET
|
|
|
|
The
|
|
|
|
.I name
|
2008-07-10 20:53:08 +00:00
|
|
|
argument points to a dotted-quad IPv4 address or a name
|
2004-11-03 13:51:07 +00:00
|
|
|
of an IPv4 network host.
|
|
|
|
.TP
|
|
|
|
.B AF_INET6
|
|
|
|
The
|
|
|
|
.I name
|
2008-07-10 20:53:08 +00:00
|
|
|
argument points to a hexadecimal IPv6 address or a name
|
2004-11-03 13:51:07 +00:00
|
|
|
of an IPv6 network host.
|
|
|
|
.PP
|
|
|
|
The
|
|
|
|
.I flags
|
2008-07-10 20:53:08 +00:00
|
|
|
argument specifies additional options.
|
2010-06-26 09:32:18 +00:00
|
|
|
More than one option can be specified by bitwise OR-ing
|
2004-11-03 13:51:07 +00:00
|
|
|
them together.
|
|
|
|
.I flags
|
|
|
|
should be set to 0
|
|
|
|
if no options are desired.
|
|
|
|
.TP
|
|
|
|
.B AI_V4MAPPED
|
|
|
|
This flag is used with
|
|
|
|
.B AF_INET6
|
|
|
|
to request a query for IPv4 addresses instead of
|
|
|
|
IPv6 addresses; the IPv4 addresses will
|
|
|
|
be mapped to IPv6 addresses.
|
|
|
|
.TP
|
|
|
|
.B AI_ALL
|
|
|
|
This flag is used with
|
|
|
|
.B AI_V4MAPPED
|
|
|
|
to request a query for both IPv4 and IPv6 addresses.
|
|
|
|
Any IPv4 address found will be mapped to an IPv6 address.
|
|
|
|
.TP
|
|
|
|
.B AI_ADDRCONFIG
|
|
|
|
This flag is used with
|
|
|
|
.B AF_INET6
|
|
|
|
to
|
|
|
|
further request that queries for IPv6 addresses should not be made unless
|
|
|
|
the system has at least one IPv6 address assigned to a network interface,
|
|
|
|
and that queries for IPv4 addresses should not be made unless the
|
|
|
|
system has at least one IPv4 address assigned to a network interface.
|
|
|
|
This flag may be used by itself or with the
|
|
|
|
.B AI_V4MAPPED
|
|
|
|
flag.
|
|
|
|
.TP
|
|
|
|
.B AI_DEFAULT
|
2007-04-12 22:42:49 +00:00
|
|
|
This flag is equivalent to
|
2004-11-03 13:51:07 +00:00
|
|
|
.BR "(AI_ADDRCONFIG | AI_V4MAPPED)" .
|
2008-07-10 20:53:08 +00:00
|
|
|
.SS getipnodebyaddr() arguments
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
2007-11-24 10:10:39 +00:00
|
|
|
.BR getipnodebyaddr ()
|
2004-11-03 13:51:07 +00:00
|
|
|
function
|
|
|
|
looks up the name of the host whose
|
|
|
|
network address is
|
|
|
|
specified by the
|
|
|
|
.I addr
|
2008-07-10 20:53:08 +00:00
|
|
|
argument.
|
2004-11-03 13:51:07 +00:00
|
|
|
The
|
|
|
|
.I af
|
2008-07-10 20:53:08 +00:00
|
|
|
argument specifies one of the following values:
|
2004-11-03 13:51:07 +00:00
|
|
|
.TP
|
|
|
|
.B AF_INET
|
|
|
|
The
|
|
|
|
.I addr
|
2008-07-10 20:53:08 +00:00
|
|
|
argument points to a
|
2005-11-02 13:55:25 +00:00
|
|
|
.I struct in_addr
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
|
|
|
.I len
|
|
|
|
must be set to
|
2005-11-02 13:55:25 +00:00
|
|
|
.IR "sizeof(struct in_addr)" .
|
2004-11-03 13:51:07 +00:00
|
|
|
.TP
|
|
|
|
.B AF_INET6
|
|
|
|
The
|
|
|
|
.I addr
|
2008-07-10 20:53:08 +00:00
|
|
|
argument points to a
|
2005-11-02 13:55:25 +00:00
|
|
|
.I struct in6_addr
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
|
|
|
.I len
|
|
|
|
must be set to
|
2005-11-02 13:55:25 +00:00
|
|
|
.IR "sizeof(struct in6_addr)" .
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH "RETURN VALUE"
|
2011-09-28 04:25:05 +00:00
|
|
|
A NULL pointer is returned if an error occurred, and
|
2004-11-03 13:51:07 +00:00
|
|
|
.I error_num
|
|
|
|
will contain an error code from the following list:
|
|
|
|
.TP
|
|
|
|
.B HOST_NOT_FOUND
|
2008-06-27 03:37:56 +00:00
|
|
|
The hostname or network address was not found.
|
2004-11-03 13:51:07 +00:00
|
|
|
.TP
|
|
|
|
.B NO_ADDRESS
|
|
|
|
The domain name server recognized the network address or name,
|
|
|
|
but no answer was returned.
|
|
|
|
This can happen if the network host has only IPv4 addresses and
|
|
|
|
a request has been made for IPv6 information only, or vice versa.
|
|
|
|
.TP
|
|
|
|
.B NO_RECOVERY
|
|
|
|
The domain name server returned a permanent failure response.
|
|
|
|
.TP
|
|
|
|
.B TRY_AGAIN
|
|
|
|
The domain name server returned a temporary failure response.
|
|
|
|
You might have better luck next time.
|
|
|
|
.PP
|
|
|
|
A successful query returns a pointer to a
|
2007-06-20 22:07:01 +00:00
|
|
|
.I hostent
|
2004-11-03 13:51:07 +00:00
|
|
|
structure that contains the following fields:
|
|
|
|
.TP
|
2007-06-20 22:07:01 +00:00
|
|
|
.I h_name
|
2004-11-03 13:51:07 +00:00
|
|
|
This is the official name of this network host.
|
|
|
|
.TP
|
2007-06-20 22:07:01 +00:00
|
|
|
.I h_aliases
|
2004-11-03 13:51:07 +00:00
|
|
|
This is an array of pointers to unofficial aliases for the same host.
|
2011-09-28 04:25:05 +00:00
|
|
|
The array is terminated by a NULL pointer.
|
2004-11-03 13:51:07 +00:00
|
|
|
.TP
|
2007-06-20 22:07:01 +00:00
|
|
|
.I h_addrtype
|
2004-11-03 13:51:07 +00:00
|
|
|
This is a copy of the
|
|
|
|
.I af
|
2008-07-10 20:53:08 +00:00
|
|
|
argument to
|
2007-11-24 10:10:39 +00:00
|
|
|
.BR getipnodebyname ()
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-11-24 10:10:39 +00:00
|
|
|
.BR getipnodebyaddr ().
|
2004-11-03 13:51:07 +00:00
|
|
|
.I h_addrtype
|
|
|
|
will always be
|
|
|
|
.B AF_INET
|
|
|
|
if the
|
|
|
|
.I af
|
2008-07-10 20:53:08 +00:00
|
|
|
argument was
|
2004-11-03 13:51:07 +00:00
|
|
|
.BR AF_INET .
|
|
|
|
.I h_addrtype
|
|
|
|
will always be
|
|
|
|
.B AF_INET6
|
|
|
|
if the
|
|
|
|
.I af
|
2008-07-10 20:53:08 +00:00
|
|
|
argument was
|
2004-11-03 13:51:07 +00:00
|
|
|
.BR AF_INET6 .
|
|
|
|
.TP
|
2007-06-20 22:07:01 +00:00
|
|
|
.I h_length
|
2004-11-03 13:51:07 +00:00
|
|
|
This field will be set to
|
2005-11-02 13:55:25 +00:00
|
|
|
.I sizeof(struct in_addr)
|
2004-11-03 13:51:07 +00:00
|
|
|
if
|
|
|
|
.I h_addrtype
|
2007-06-22 19:42:52 +00:00
|
|
|
is
|
|
|
|
.BR AF_INET ,
|
|
|
|
and to
|
2005-11-02 13:55:25 +00:00
|
|
|
.I sizeof(struct in6_addr)
|
2004-11-03 13:51:07 +00:00
|
|
|
if
|
|
|
|
.I h_addrtype
|
2007-06-22 19:42:52 +00:00
|
|
|
is
|
|
|
|
.BR AF_INET6 .
|
2004-11-03 13:51:07 +00:00
|
|
|
.TP
|
2007-06-20 22:07:01 +00:00
|
|
|
.I h_addr_list
|
2004-11-03 13:51:07 +00:00
|
|
|
This is an array of one or more pointers to network address structures for the
|
|
|
|
network host.
|
2011-09-28 04:25:05 +00:00
|
|
|
The array is terminated by a NULL pointer.
|
2007-05-19 04:30:20 +00:00
|
|
|
.SH "CONFORMING TO"
|
|
|
|
RFC\ 2553.
|
|
|
|
.\" Not in POSIX.1-2001.
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH NOTES
|
2007-10-14 18:19:07 +00:00
|
|
|
These functions were present in glibc 2.1.91-95, but were
|
2007-04-12 22:42:49 +00:00
|
|
|
removed again.
|
intro.1, time.1, accept.2, bind.2, connect.2, execve.2, flock.2, getdents.2, getpriority.2, getuid.2, intro.2, ioctl.2, mincore.2, mknod.2, personality.2, ptrace.2, read.2, recv.2, select_tut.2, send.2, sendfile.2, shmctl.2, sigaction.2, signal.2, stat.2, times.2, truncate.2, umask.2, wait.2, MB_CUR_MAX.3, MB_LEN_MAX.3, argz_add.3, btowc.3, clearenv.3, clock.3, cmsg.3, end.3, endian.3, errno.3, exit.3, fgetwc.3, fgetws.3, fopen.3, fputwc.3, fputws.3, fseek.3, fwide.3, getfsent.3, getgrnam.3, gethostid.3, getipnodebyname.3, getmntent.3, getpwnam.3, getwchar.3, grantpt.3, iconv.3, iconv_close.3, iconv_open.3, insque.3, intro.3, iswalnum.3, iswalpha.3, iswblank.3, iswcntrl.3, iswctype.3, iswdigit.3, iswgraph.3, iswlower.3, iswprint.3, iswpunct.3, iswspace.3, iswupper.3, iswxdigit.3, malloc.3, mblen.3, mbrlen.3, mbrtowc.3, mbsinit.3, mbsnrtowcs.3, mbsrtowcs.3, mbstowcs.3, mbtowc.3, mkstemp.3, mktemp.3, nl_langinfo.3, openpty.3, posix_openpt.3, printf.3, ptsname.3, putwchar.3, qecvt.3, rcmd.3, readdir.3, rexec.3, rpc.3, setnetgrent.3, shm_open.3, sigpause.3, stdin.3, stpcpy.3, strftime.3, strptime.3, syslog.3, towctrans.3, towlower.3, towupper.3, ttyslot.3, ungetwc.3, unlocked_stdio.3, wcpcpy.3, wcpncpy.3, wcrtomb.3, wcscasecmp.3, wcscat.3, wcschr.3, wcscmp.3, wcscpy.3, wcscspn.3, wcsdup.3, wcslen.3, wcsncasecmp.3, wcsncat.3, wcsncmp.3, wcsncpy.3, wcsnlen.3, wcsnrtombs.3, wcspbrk.3, wcsrchr.3, wcsrtombs.3, wcsspn.3, wcsstr.3, wcstok.3, wcstombs.3, wcswidth.3, wctob.3, wctomb.3, wctrans.3, wctype.3, wcwidth.3, wmemchr.3, wmemcmp.3, wmemcpy.3, wmemmove.3, wmemset.3, wprintf.3, console_ioctl.4, pts.4, elf.5, filesystems.5, hosts.5, proc.5, ttytype.5, boot.7, capabilities.7, credentials.7, epoll.7, glob.7, koi8-r.7, path_resolution.7, pty.7, signal.7, suffixes.7, time.7, unicode.7, unix.7, uri.7, utf-8.7: global fix: s/Unix/UNIX/
The man pages were rather inconsistent in the use of "Unix"
versus "UNIX". Let's go with the trademark usage.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-10-12 04:45:38 +00:00
|
|
|
Several UNIX-like systems support them, but all
|
2004-11-03 13:51:07 +00:00
|
|
|
call them deprecated.
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR getaddrinfo (3),
|
|
|
|
.BR getnameinfo (3),
|
|
|
|
.BR inet_ntop (3),
|
|
|
|
.BR inet_pton (3)
|