1bc7413d0SPeter Wemm.\" Copyright (c) 1983, 1987, 1991, 1993 2bc7413d0SPeter Wemm.\" The Regents of the University of California. All rights reserved. 3fdf4c7afSPeter Wemm.\" 4bc7413d0SPeter Wemm.\" Redistribution and use in source and binary forms, with or without 5bc7413d0SPeter Wemm.\" modification, are permitted provided that the following conditions 6bc7413d0SPeter Wemm.\" are met: 7bc7413d0SPeter Wemm.\" 1. Redistributions of source code must retain the above copyright 8bc7413d0SPeter Wemm.\" notice, this list of conditions and the following disclaimer. 9bc7413d0SPeter Wemm.\" 2. Redistributions in binary form must reproduce the above copyright 10bc7413d0SPeter Wemm.\" notice, this list of conditions and the following disclaimer in the 11bc7413d0SPeter Wemm.\" documentation and/or other materials provided with the distribution. 12fbbd9655SWarner Losh.\" 3. Neither the name of the University nor the names of its contributors 13bc7413d0SPeter Wemm.\" may be used to endorse or promote products derived from this software 14bc7413d0SPeter Wemm.\" without specific prior written permission. 15fdf4c7afSPeter Wemm.\" 16bc7413d0SPeter Wemm.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17bc7413d0SPeter Wemm.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18bc7413d0SPeter Wemm.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19bc7413d0SPeter Wemm.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20bc7413d0SPeter Wemm.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21bc7413d0SPeter Wemm.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22bc7413d0SPeter Wemm.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23bc7413d0SPeter Wemm.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24bc7413d0SPeter Wemm.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25bc7413d0SPeter Wemm.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26bc7413d0SPeter Wemm.\" SUCH DAMAGE. 27fdf4c7afSPeter Wemm.\" 28577b61c6SPhilippe Charnier.\" From: @(#)gethostbyname.3 8.4 (Berkeley) 5/25/95 297f3dea24SPeter Wemm.\" $FreeBSD$ 30bc7413d0SPeter Wemm.\" 314a3c598fSFernando Apesteguía.Dd June 27, 2022 32bc7413d0SPeter Wemm.Dt GETHOSTBYNAME 3 33a307d598SRuslan Ermilov.Os 34bc7413d0SPeter Wemm.Sh NAME 35bc7413d0SPeter Wemm.Nm gethostbyname , 36c293d821SPeter Wemm.Nm gethostbyname2 , 37bc7413d0SPeter Wemm.Nm gethostbyaddr , 38bc7413d0SPeter Wemm.Nm gethostent , 39bc7413d0SPeter Wemm.Nm sethostent , 40bc7413d0SPeter Wemm.Nm endhostent , 41c293d821SPeter Wemm.Nm herror , 42dc689973SFernando Apesteguía.Nm hstrerror , 43dc689973SFernando Apesteguía.Nm gethostbyname_r , 44dc689973SFernando Apesteguía.Nm gethostbyname2_r , 45dc689973SFernando Apesteguía.Nm gethostbyaddr_r 46bc7413d0SPeter Wemm.Nd get network host entry 4725bb73e0SAlexey Zelkin.Sh LIBRARY 4825bb73e0SAlexey Zelkin.Lb libc 49bc7413d0SPeter Wemm.Sh SYNOPSIS 5032eef9aeSRuslan Ermilov.In netdb.h 516b0a380fSSam Lawrance.Vt int h_errno ; 52bc7413d0SPeter Wemm.Ft struct hostent * 53d3281e16SJohn Polstra.Fn gethostbyname "const char *name" 54bc7413d0SPeter Wemm.Ft struct hostent * 55c293d821SPeter Wemm.Fn gethostbyname2 "const char *name" "int af" 56c293d821SPeter Wemm.Ft struct hostent * 570237ec97SPawel Jakub Dawidek.Fn gethostbyaddr "const void *addr" "socklen_t len" "int af" 58bc7413d0SPeter Wemm.Ft struct hostent * 59bc7413d0SPeter Wemm.Fn gethostent void 603ce29386SBruce Evans.Ft void 61bc7413d0SPeter Wemm.Fn sethostent "int stayopen" 623ce29386SBruce Evans.Ft void 63bc7413d0SPeter Wemm.Fn endhostent void 643ce29386SBruce Evans.Ft void 65d3281e16SJohn Polstra.Fn herror "const char *string" 66c293d821SPeter Wemm.Ft const char * 67c293d821SPeter Wemm.Fn hstrerror "int err" 68dc689973SFernando Apesteguía.Ft int 69dc689973SFernando Apesteguía.Fn gethostbyname_r "const char *name" "struct hostent *he" "char *buffer" "size_t buflen" "struct hostent **result" "int *h_errnop" 70dc689973SFernando Apesteguía.Ft int 71dc689973SFernando Apesteguía.Fn gethostbyname2_r "const char *name" "int af" "struct hostent *he" "char *buffer" "size_t buflen" "struct hostent **result" "int *h_errnop" 72dc689973SFernando Apesteguía.Ft int 73dc689973SFernando Apesteguía.Fn gethostbyaddr_r "const void *addr" "socklen_t len" "int af" "struct hostent *hp" "char *buf" "size_t buflen" "struct hostent **result" "int *h_errno"p 74bc7413d0SPeter Wemm.Sh DESCRIPTION 753bc371d2SRuslan Ermilov.Bf -symbolic 763bc371d2SRuslan ErmilovThe 773bc371d2SRuslan Ermilov.Xr getaddrinfo 3 783bc371d2SRuslan Ermilovand 793bc371d2SRuslan Ermilov.Xr getnameinfo 3 803bc371d2SRuslan Ermilovfunctions are preferred over the 813bc371d2SRuslan Ermilov.Fn gethostbyname , 823bc371d2SRuslan Ermilov.Fn gethostbyname2 , 833bc371d2SRuslan Ermilovand 843bc371d2SRuslan Ermilov.Fn gethostbyaddr 853bc371d2SRuslan Ermilovfunctions. 863bc371d2SRuslan Ermilov.Ef 873bc371d2SRuslan Ermilov.Pp 88bc7413d0SPeter WemmThe 89c293d821SPeter Wemm.Fn gethostbyname , 90c293d821SPeter Wemm.Fn gethostbyname2 91fdf4c7afSPeter Wemmand 92bc7413d0SPeter Wemm.Fn gethostbyaddr 93bc7413d0SPeter Wemmfunctions 94fdf4c7afSPeter Wemmeach return a pointer to an object with the 95fdf4c7afSPeter Wemmfollowing structure describing an internet host 96fdf4c7afSPeter Wemmreferenced by name or by address, respectively. 974460a589SNik Clayton.Pp 984460a589SNik ClaytonThe 994460a589SNik Clayton.Fa name 1002efeeba5SRuslan Ermilovargument passed to 1014460a589SNik Clayton.Fn gethostbyname 1024460a589SNik Claytonor 1034460a589SNik Clayton.Fn gethostbyname2 104c634427cSRuslan Ermilovshould point to a 105c634427cSRuslan Ermilov.Dv NUL Ns -terminated 106c634427cSRuslan Ermilovhostname. 1074460a589SNik ClaytonThe 1084460a589SNik Clayton.Fa addr 1092efeeba5SRuslan Ermilovargument passed to 1104460a589SNik Clayton.Fn gethostbyaddr 1114460a589SNik Claytonshould point to an address which is 1124460a589SNik Clayton.Fa len 1134460a589SNik Claytonbytes long, 1144460a589SNik Claytonin binary form 1151a0a9345SRuslan Ermilov(i.e., not an IP address in human readable 116c634427cSRuslan Ermilov.Tn ASCII 117c634427cSRuslan Ermilovform). 1184460a589SNik ClaytonThe 1190237ec97SPawel Jakub Dawidek.Fa af 1202efeeba5SRuslan Ermilovargument specifies the address family 121c634427cSRuslan Ermilov(e.g.\& 122c634427cSRuslan Ermilov.Dv AF_INET , AF_INET6 , 123c634427cSRuslan Ermilovetc.) of this address. 1244460a589SNik Clayton.Pp 1254460a589SNik ClaytonThe structure returned contains either the information obtained from the name 126942e234dSFernando Apesteguíaserver, broken-out fields from a line in 127248aee62SJacques Vidrine.Pa /etc/hosts , 128248aee62SJacques Vidrineor database entries supplied by the 129491a8429SRuslan Ermilov.Xr yp 8 130248aee62SJacques Vidrinesystem. 131248aee62SJacques VidrineThe order of the lookups is controlled by the 132248aee62SJacques Vidrine.Sq hosts 133248aee62SJacques Vidrineentry in 134248aee62SJacques Vidrine.Xr nsswitch.conf 5 . 135bc7413d0SPeter Wemm.Bd -literal 136fdf4c7afSPeter Wemmstruct hostent { 137fdf4c7afSPeter Wemm char *h_name; /* official name of host */ 138fdf4c7afSPeter Wemm char **h_aliases; /* alias list */ 139fdf4c7afSPeter Wemm int h_addrtype; /* host address type */ 140fdf4c7afSPeter Wemm int h_length; /* length of address */ 141fdf4c7afSPeter Wemm char **h_addr_list; /* list of addresses from name server */ 142fdf4c7afSPeter Wemm}; 143fdf4c7afSPeter Wemm#define h_addr h_addr_list[0] /* address, for backward compatibility */ 144bc7413d0SPeter Wemm.Ed 145bc7413d0SPeter Wemm.Pp 146fdf4c7afSPeter WemmThe members of this structure are: 147bc7413d0SPeter Wemm.Bl -tag -width h_addr_list 148c634427cSRuslan Ermilov.It Va h_name 149fdf4c7afSPeter WemmOfficial name of the host. 150c634427cSRuslan Ermilov.It Va h_aliases 151c634427cSRuslan ErmilovA 152c634427cSRuslan Ermilov.Dv NULL Ns -terminated 153c634427cSRuslan Ermilovarray of alternate names for the host. 154c634427cSRuslan Ermilov.It Va h_addrtype 155c293d821SPeter WemmThe type of address being returned; usually 156bc7413d0SPeter Wemm.Dv AF_INET . 157c634427cSRuslan Ermilov.It Va h_length 158fdf4c7afSPeter WemmThe length, in bytes, of the address. 159c634427cSRuslan Ermilov.It Va h_addr_list 160c634427cSRuslan ErmilovA 161c634427cSRuslan Ermilov.Dv NULL Ns -terminated 162c634427cSRuslan Ermilovarray of network addresses for the host. 163fdf4c7afSPeter WemmHost addresses are returned in network byte order. 164c634427cSRuslan Ermilov.It Va h_addr 165bc7413d0SPeter WemmThe first address in 166c634427cSRuslan Ermilov.Va h_addr_list ; 167bc7413d0SPeter Wemmthis is for backward compatibility. 168c293d821SPeter Wemm.El 169bc7413d0SPeter Wemm.Pp 170fdf4c7afSPeter WemmWhen using the nameserver, 171bc7413d0SPeter Wemm.Fn gethostbyname 172c293d821SPeter Wemmand 173aec5b6f6SAlexey Zelkin.Fn gethostbyname2 174fdf4c7afSPeter Wemmwill search for the named host in the current domain and its parents 175fdf4c7afSPeter Wemmunless the name ends in a dot. 176bc7413d0SPeter WemmIf the name contains no dot, and if the environment variable 177bc7413d0SPeter Wemm.Dq Ev HOSTALIASES 178fdf4c7afSPeter Wemmcontains the name of an alias file, the alias file will first be searched 179fdf4c7afSPeter Wemmfor an alias matching the input name. 180fdf4c7afSPeter WemmSee 181bc7413d0SPeter Wemm.Xr hostname 7 182fdf4c7afSPeter Wemmfor the domain search procedure and the alias file format. 183bc7413d0SPeter Wemm.Pp 184bc7413d0SPeter WemmThe 185c293d821SPeter Wemm.Fn gethostbyname2 186c293d821SPeter Wemmfunction is an evolution of 187c293d821SPeter Wemm.Fn gethostbyname 188c293d821SPeter Wemmwhich is intended to allow lookups in address families other than 189c293d821SPeter Wemm.Dv AF_INET , 190c293d821SPeter Wemmfor example 191c293d821SPeter Wemm.Dv AF_INET6 . 192c293d821SPeter Wemm.Pp 193c293d821SPeter WemmThe 194bc7413d0SPeter Wemm.Fn sethostent 195bc7413d0SPeter Wemmfunction 196bc7413d0SPeter Wemmmay be used to request the use of a connected 197bc7413d0SPeter Wemm.Tn TCP 198bc7413d0SPeter Wemmsocket for queries. 1999eba44bfSCy SchubertQueries will by default use 200b1b1386fSCy Schubert.Tn UDP 20175ea0b76SBenjamin Kadukdatagrams. 20275ea0b76SBenjamin KadukIf the 203bc7413d0SPeter Wemm.Fa stayopen 204b1b1386fSCy Schubertflag is non-zero, a 205bc7413d0SPeter Wemm.Tn TCP 20675ea0b76SBenjamin Kadukconnection to the name server will be used. 20775ea0b76SBenjamin KadukIt will remain open after calls to 208c293d821SPeter Wemm.Fn gethostbyname , 209c293d821SPeter Wemm.Fn gethostbyname2 210fdf4c7afSPeter Wemmor 211b1b1386fSCy Schubert.Fn gethostbyaddr 212b1b1386fSCy Schuberthave completed. 213bc7413d0SPeter Wemm.Pp 214bc7413d0SPeter WemmThe 215bc7413d0SPeter Wemm.Fn endhostent 216bc7413d0SPeter Wemmfunction 217bc7413d0SPeter Wemmcloses the 218bc7413d0SPeter Wemm.Tn TCP 219bc7413d0SPeter Wemmconnection. 220c293d821SPeter Wemm.Pp 221c293d821SPeter WemmThe 222c293d821SPeter Wemm.Fn herror 223c293d821SPeter Wemmfunction writes a message to the diagnostic output consisting of the 2242efeeba5SRuslan Ermilovstring argument 2252efeeba5SRuslan Ermilov.Fa string , 226c634427cSRuslan Ermilovthe constant string 227c634427cSRuslan Ermilov.Qq Li ":\ " , 228c634427cSRuslan Ermilovand a message corresponding to the value of 229c293d821SPeter Wemm.Va h_errno . 230c293d821SPeter Wemm.Pp 231c293d821SPeter WemmThe 232c293d821SPeter Wemm.Fn hstrerror 233c293d821SPeter Wemmfunction returns a string which is the message text corresponding to the 234c293d821SPeter Wemmvalue of the 235c293d821SPeter Wemm.Fa err 2362efeeba5SRuslan Ermilovargument. 237dc689973SFernando Apesteguía.Pp 238dc689973SFernando ApesteguíaFunctions with the 239dc689973SFernando Apesteguía.Em _r 240dc689973SFernando Apesteguíasuffix provide reentrant versions of their respective counterparts. 241dc689973SFernando ApesteguíaThe caller must supply five additional parameters: a 242dc689973SFernando Apesteguía.Vt struct hostent 243dc689973SFernando Apesteguíavariable to be filled on success, a 244dc689973SFernando Apesteguía.Va buffer 245dc689973SFernando Apesteguíaof 246dc689973SFernando Apesteguía.Va buflen 247dc689973SFernando Apesteguíabytes in size, a 248dc689973SFernando Apesteguía.Vt struct hostent 249dc689973SFernando Apesteguía.Va result 250dc689973SFernando Apesteguíavariable that will point to the result on success or be set to 251dc689973SFernando Apesteguía.Dv NULL 252dc689973SFernando Apesteguíaon failure or if the name is not found. 253dc689973SFernando ApesteguíaThe 254dc689973SFernando Apesteguía.Va h_errnop 255dc689973SFernando Apesteguíavariable will be filled with the error code if any. 256dc689973SFernando ApesteguíaAll these functions return 0 on success. 257bc7413d0SPeter Wemm.Sh FILES 258248aee62SJacques Vidrine.Bl -tag -width /etc/nsswitch.conf -compact 259bc7413d0SPeter Wemm.It Pa /etc/hosts 260248aee62SJacques Vidrine.It Pa /etc/nsswitch.conf 261c293d821SPeter Wemm.It Pa /etc/resolv.conf 262bc7413d0SPeter Wemm.El 2634460a589SNik Clayton.Sh EXAMPLES 2644460a589SNik ClaytonPrint out the hostname associated with a specific IP address: 265c634427cSRuslan Ermilov.Bd -literal -offset indent 2664460a589SNik Claytonconst char *ipstr = "127.0.0.1"; 2674460a589SNik Claytonstruct in_addr ip; 2684460a589SNik Claytonstruct hostent *hp; 2694460a589SNik Clayton 2704460a589SNik Claytonif (!inet_aton(ipstr, &ip)) 2714460a589SNik Clayton errx(1, "can't parse IP address %s", ipstr); 2724460a589SNik Clayton 2733da59cd0SHajimu UMEMOTOif ((hp = gethostbyaddr((const void *)&ip, 2744460a589SNik Clayton sizeof ip, AF_INET)) == NULL) 2754460a589SNik Clayton errx(1, "no name associated with %s", ipstr); 2764460a589SNik Clayton 2774460a589SNik Claytonprintf("name associated with %s is %s\en", ipstr, hp->h_name); 278c634427cSRuslan Ermilov.Ed 279bc7413d0SPeter Wemm.Sh DIAGNOSTICS 280fdf4c7afSPeter WemmError return status from 281c293d821SPeter Wemm.Fn gethostbyname , 282c293d821SPeter Wemm.Fn gethostbyname2 283fdf4c7afSPeter Wemmand 284bc7413d0SPeter Wemm.Fn gethostbyaddr 285c634427cSRuslan Ermilovis indicated by return of a 286c634427cSRuslan Ermilov.Dv NULL 287c634427cSRuslan Ermilovpointer. 2886b0a380fSSam LawranceThe integer 289bc7413d0SPeter Wemm.Va h_errno 290fdf4c7afSPeter Wemmmay then be checked to see whether this is a temporary failure 291fdf4c7afSPeter Wemmor an invalid or unknown host. 292fdf4c7afSPeter WemmThe routine 293bc7413d0SPeter Wemm.Fn herror 294fdf4c7afSPeter Wemmcan be used to print an error message describing the failure. 295fdf4c7afSPeter WemmIf its argument 296bc7413d0SPeter Wemm.Fa string 297bc7413d0SPeter Wemmis 298c634427cSRuslan Ermilov.Pf non- Dv NULL , 299bc7413d0SPeter Wemmit is printed, followed by a colon and a space. 300fdf4c7afSPeter WemmThe error message is printed with a trailing newline. 301bc7413d0SPeter Wemm.Pp 302bc7413d0SPeter WemmThe variable 303bc7413d0SPeter Wemm.Va h_errno 304fdf4c7afSPeter Wemmcan have the following values: 305bc7413d0SPeter Wemm.Bl -tag -width HOST_NOT_FOUND 306bc7413d0SPeter Wemm.It Dv HOST_NOT_FOUND 307fdf4c7afSPeter WemmNo such host is known. 308bc7413d0SPeter Wemm.It Dv TRY_AGAIN 309fdf4c7afSPeter WemmThis is usually a temporary error 310fdf4c7afSPeter Wemmand means that the local server did not receive 311fdf4c7afSPeter Wemma response from an authoritative server. 312fdf4c7afSPeter WemmA retry at some later time may succeed. 313bc7413d0SPeter Wemm.It Dv NO_RECOVERY 314fdf4c7afSPeter WemmSome unexpected server failure was encountered. 315fdf4c7afSPeter WemmThis is a non-recoverable error. 316bc7413d0SPeter Wemm.It Dv NO_DATA 317fdf4c7afSPeter WemmThe requested name is valid but does not have an IP address; 318fdf4c7afSPeter Wemmthis is not a temporary error. 319fdf4c7afSPeter WemmThis means that the name is known to the name server but there is no address 320fdf4c7afSPeter Wemmassociated with this name. 321fdf4c7afSPeter WemmAnother type of request to the name server using this domain name 322fdf4c7afSPeter Wemmwill result in an answer; 323fdf4c7afSPeter Wemmfor example, a mail-forwarder may be registered for this domain. 324bc7413d0SPeter Wemm.El 325bc7413d0SPeter Wemm.Sh SEE ALSO 3261fed0019SArchie Cobbs.Xr getaddrinfo 3 , 3273bc371d2SRuslan Ermilov.Xr getnameinfo 3 , 328a289e937SRuslan Ermilov.Xr inet_aton 3 , 329bc7413d0SPeter Wemm.Xr resolver 3 , 330bc7413d0SPeter Wemm.Xr hosts 5 , 331942e234dSFernando Apesteguía.Xr hostname 7 332f6d234d8SGordon Bergling.Sh HISTORY 333f6d234d8SGordon BerglingThe 334f6d234d8SGordon Bergling.Fn herror 335f6d234d8SGordon Berglingfunction appeared in 336f6d234d8SGordon Bergling.Bx 4.3 . 337f6d234d8SGordon BerglingThe 338f6d234d8SGordon Bergling.Fn endhostent , 339f6d234d8SGordon Bergling.Fn gethostbyaddr , 340f6d234d8SGordon Bergling.Fn gethostbyname , 341f6d234d8SGordon Bergling.Fn gethostent , 342f6d234d8SGordon Berglingand 343f6d234d8SGordon Bergling.Fn sethostent 344f6d234d8SGordon Berglingfunctions appeared in 345f6d234d8SGordon Bergling.Bx 4.2 . 346f6d234d8SGordon BerglingThe 347f6d234d8SGordon Bergling.Fn gethostbyname2 348f6d234d8SGordon Berglingfunction first appeared in 349f6d234d8SGordon Bergling.Tn BIND 350f6d234d8SGordon Berglingversion 4.9.4. 351*47d0f36cSDavid E. O'BrienThe 352*47d0f36cSDavid E. O'Brien.Fn gethostbyname_r 353*47d0f36cSDavid E. O'Brienfunction first appeared in 354*47d0f36cSDavid E. O'Brien.Fx 6.2 . 355f6d234d8SGordon Bergling.Sh CAVEATS 356bc7413d0SPeter WemmThe 357bc7413d0SPeter Wemm.Fn gethostent 358bc7413d0SPeter Wemmfunction 359fdf4c7afSPeter Wemmis defined, and 360bc7413d0SPeter Wemm.Fn sethostent 361fdf4c7afSPeter Wemmand 362bc7413d0SPeter Wemm.Fn endhostent 363fdf4c7afSPeter Wemmare redefined, 364fdf4c7afSPeter Wemmwhen 365fe71ab1cSPhilippe Charnier.Lb libc 366fdf4c7afSPeter Wemmis built to use only the routines to lookup in 367bc7413d0SPeter Wemm.Pa /etc/hosts 368fdf4c7afSPeter Wemmand not the name server. 369bc7413d0SPeter Wemm.Pp 370bc7413d0SPeter WemmThe 371bc7413d0SPeter Wemm.Fn gethostent 372bc7413d0SPeter Wemmfunction 373fdf4c7afSPeter Wemmreads the next line of 374bc7413d0SPeter Wemm.Pa /etc/hosts , 375fdf4c7afSPeter Wemmopening the file if necessary. 376bc7413d0SPeter Wemm.Pp 377bc7413d0SPeter WemmThe 378bc7413d0SPeter Wemm.Fn sethostent 379bc7413d0SPeter Wemmfunction 380bc7413d0SPeter Wemmopens and/or rewinds the file 381bc7413d0SPeter Wemm.Pa /etc/hosts . 382bc7413d0SPeter WemmIf the 383bc7413d0SPeter Wemm.Fa stayopen 384fdf4c7afSPeter Wemmargument is non-zero, 385bc7413d0SPeter Wemmthe file will not be closed after each call to 386c293d821SPeter Wemm.Fn gethostbyname , 387c293d821SPeter Wemm.Fn gethostbyname2 388fdf4c7afSPeter Wemmor 389bc7413d0SPeter Wemm.Fn gethostbyaddr . 390bc7413d0SPeter Wemm.Pp 391bc7413d0SPeter WemmThe 392bc7413d0SPeter Wemm.Fn endhostent 393bc7413d0SPeter Wemmfunction 394bc7413d0SPeter Wemmcloses the file. 395bc7413d0SPeter Wemm.Sh BUGS 396aa2f4ec7SHajimu UMEMOTOThese functions use a thread-specific data storage; 397bc7413d0SPeter Wemmif the data is needed for future use, it should be 398bc7413d0SPeter Wemmcopied before any subsequent calls overwrite it. 399aa2f4ec7SHajimu UMEMOTO.Pp 400aa2f4ec7SHajimu UMEMOTOThough these functions are thread-safe, 401aa2f4ec7SHajimu UMEMOTOstill it is recommended to use the 40233dee819SBrian Feldman.Xr getaddrinfo 3 403aa2f4ec7SHajimu UMEMOTOfamily of functions, instead. 404aa2f4ec7SHajimu UMEMOTO.Pp 405bc7413d0SPeter WemmOnly the Internet 406fdf4c7afSPeter Wemmaddress format is currently understood. 407