📄 gethostbyname.3
字号:
.\" $OpenBSD: gethostbyname.3,v 1.16 2000/12/24 00:30:56 aaron Exp $.\".\" Copyright (c) 1983, 1987, 1991, 1993.\" The Regents of the University of California. All rights reserved..\".\" Redistribution and use in source and binary forms, with or without.\" modification, are permitted provided that the following conditions.\" are met:.\" 1. Redistributions of source code must retain the above copyright.\" notice, this list of conditions and the following disclaimer..\" 2. Redistributions in binary form must reproduce the above copyright.\" notice, this list of conditions and the following disclaimer in the.\" documentation and/or other materials provided with the distribution..\" 3. All advertising materials mentioning features or use of this software.\" must display the following acknowledgement:.\" This product includes software developed by the University of.\" California, Berkeley and its contributors..\" 4. Neither the name of the University nor the names of its contributors.\" may be used to endorse or promote products derived from this software.\" without specific prior written permission..\".\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION).\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF.\" SUCH DAMAGE..\".Dd March 13, 1997.Dt GETHOSTBYNAME 3.Os.Sh NAME.Nm gethostbyname ,.Nm gethostbyname2 ,.Nm gethostbyaddr ,.Nm gethostent ,.Nm sethostent ,.Nm endhostent ,.Nm hstrerror ,.Nm herror.Nd get network host entry.Sh SYNOPSIS.Fd #include <netdb.h>.Fd extern int h_errno;.Ft struct hostent *.Fn gethostbyname "const char *name".Ft struct hostent *.Fn gethostbyname2 "const char *name" "int af".Ft struct hostent *.Fn gethostbyaddr "const char *addr" "int len" "int af".Ft struct hostent *.Fn gethostent void.Ft void.Fn sethostent "int stayopen".Ft void.Fn endhostent void.Ft void.Fn herror "const char *string".Ft const char *.Fn hstrerror "int err".Sh DESCRIPTIONThe.Fn gethostbynameand.Fn gethostbyaddrfunctions each return a pointer to an object with the following structuredescribing an internet host referenced by name or by address, respectively.This structure contains either information obtained from the name server (i.e.,.Xr resolver 3and.Xr named 8 ) ,broken-out fields from a line in.Pa /etc/hosts ,or database entries supplied by the.Xr yp 8system..Xr resolv.conf 5describes how the particular database is chosen..Bd -literalstruct hostent { char *h_name; /* official name of host */ char **h_aliases; /* alias list */ int h_addrtype; /* host address type */ int h_length; /* length of address */ char **h_addr_list; /* list of addresses from name server */};#define h_addr h_addr_list[0] /* address, for backward compatibility */.Ed.PpThe members of this structure are:.Bl -tag -width h_addr_list.It Fa h_nameOfficial name of the host..It Fa h_aliasesA zero-terminated array of alternate names for the host..It Fa h_addrtypeThe type of address being returned..It Fa h_lengthThe length, in bytes, of the address..It Fa h_addr_listA zero-terminated array of network addresses for the host.Host addresses are returned in network byte order..It Fa h_addrThe first address in.Fa h_addr_list ;this is for backward compatibility..El.PpThe function.Fn gethostbynamewill search for the named host in the current domain and its parentsusing the search lookup semantics detailed in.Xr resolv.conf 5and.Xr hostname 7 ..Pp.Fn gethostbyname2is an advanced form of.Fn gethostbynamewhich allows lookups in address families other than.Dv AF_INET ,for example.Dv AF_INET6 ..PpThe.Fn gethostbyaddrfunction will search for the specified address of length.Fa lenin the address family.Fa af .The only address family currently supported is.Dv AF_INET ..PpThe.Fn sethostentfunction may be used to request the use of a connected.Tn TCPsocket for queries.If the.Fa stayopenflag is non-zero,this sets the option to send all queries to the name server using.Tn TCPand to retain the connection after each call to.Fn gethostbynameor.Fn gethostbyaddr .Otherwise, queries are performed using.Tn UDPdatagrams..PpThe.Fn endhostentfunction closes the.Tn TCPconnection..PpThe.Fn herrorfunction prints an error message describing the failure.If its argument.Fa stringis non-null,it is prepended to the message string and separated from it by a colon.Pq Ql \&:and a space.The error message is printed with a trailing newline.The contents of the error message is the same as that returned by.Fn hstrerrorwith argument.Fa h_errno ..Sh FILES.Bl -tag -width /etc/resolv.conf -compact.It Pa /etc/hosts.It Pa /etc/resolv.conf.El.Sh DIAGNOSTICSError return status from.Fn gethostbyname ,.Fn gethostbyname2 ,and.Fn gethostbyaddris indicated by return of a null pointer.The external integer.Va h_errnomay then be checked to see whether this is a temporary failureor an invalid or unknown host..PpThe variable.Va h_errnocan have the following values:.Bl -tag -width HOST_NOT_FOUND.It Dv HOST_NOT_FOUNDNo such host is known..It Dv TRY_AGAINThis is usually a temporary errorand means that the local server did not receivea response from an authoritative server.A retry at some later time may succeed..It Dv NO_RECOVERYSome unexpected server failure was encountered.This is a non-recoverable error..It Dv NO_DATAThe requested name is valid but does not have an IP address;this is not a temporary error.This means that the name is known to the name server but there is no addressassociated with this name.Another type of request to the name server using this domain namewill result in an answer;for example, a mail-forwarder may be registered for this domain..El.Sh SEE ALSO.Xr resolver 3 ,.Xr getaddrinfo 3 ,.Xr getnameinfo 3 ,.Xr hosts 5 ,.Xr resolv.conf 5 ,.Xr hostname 7 ,.Xr named 8.Sh CAVEATIf the search routines in.Xr resolv.conf 5decide to read the.Pa /etc/hostsfile,.Fn gethostentand other functions willread the next line of the file,re-opening the file if necessary..PpThe.Fn sethostentfunction opens and/or rewinds the file.Pa /etc/hosts .If the.Fa stayopenargument is non-zero, the file will not be closed after each call to.Fn gethostbyname ,.Fn gethostbyname2 ,or.Fn gethostbyaddr ..PpThe.Fn endhostentfunction closes the file..Sh HISTORYThe.Fn herrorfunction appeared in.Bx 4.3 .The.Fn endhostent ,.Fn gethostbyaddr ,.Fn gethostbyname ,.Fn gethostent ,and.Fn sethostentfunctions appeared in.Bx 4.2 ..Sh BUGSThese functions use static data storage;if the data is needed for future use, it should becopied before any subsequent calls overwrite it.Only the Internetaddress formats are currently understood..PpYP does not support any address families other than.Dv AF_INETand usesthe traditional database format.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -