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.\" 284a3c598fSFernando Apesteguía.Dd June 27, 2022 29bc7413d0SPeter Wemm.Dt GETHOSTBYNAME 3 30a307d598SRuslan Ermilov.Os 31bc7413d0SPeter Wemm.Sh NAME 32bc7413d0SPeter Wemm.Nm gethostbyname , 33c293d821SPeter Wemm.Nm gethostbyname2 , 34bc7413d0SPeter Wemm.Nm gethostbyaddr , 35bc7413d0SPeter Wemm.Nm gethostent , 36bc7413d0SPeter Wemm.Nm sethostent , 37bc7413d0SPeter Wemm.Nm endhostent , 38c293d821SPeter Wemm.Nm herror , 39dc689973SFernando Apesteguía.Nm hstrerror , 40dc689973SFernando Apesteguía.Nm gethostbyname_r , 41dc689973SFernando Apesteguía.Nm gethostbyname2_r , 42dc689973SFernando Apesteguía.Nm gethostbyaddr_r 43bc7413d0SPeter Wemm.Nd get network host entry 4425bb73e0SAlexey Zelkin.Sh LIBRARY 4525bb73e0SAlexey Zelkin.Lb libc 46bc7413d0SPeter Wemm.Sh SYNOPSIS 4732eef9aeSRuslan Ermilov.In netdb.h 486b0a380fSSam Lawrance.Vt int h_errno ; 49bc7413d0SPeter Wemm.Ft struct hostent * 50d3281e16SJohn Polstra.Fn gethostbyname "const char *name" 51bc7413d0SPeter Wemm.Ft struct hostent * 52c293d821SPeter Wemm.Fn gethostbyname2 "const char *name" "int af" 53c293d821SPeter Wemm.Ft struct hostent * 540237ec97SPawel Jakub Dawidek.Fn gethostbyaddr "const void *addr" "socklen_t len" "int af" 55bc7413d0SPeter Wemm.Ft struct hostent * 56bc7413d0SPeter Wemm.Fn gethostent void 573ce29386SBruce Evans.Ft void 58bc7413d0SPeter Wemm.Fn sethostent "int stayopen" 593ce29386SBruce Evans.Ft void 60bc7413d0SPeter Wemm.Fn endhostent void 613ce29386SBruce Evans.Ft void 62d3281e16SJohn Polstra.Fn herror "const char *string" 63c293d821SPeter Wemm.Ft const char * 64c293d821SPeter Wemm.Fn hstrerror "int err" 65dc689973SFernando Apesteguía.Ft int 66dc689973SFernando Apesteguía.Fn gethostbyname_r "const char *name" "struct hostent *he" "char *buffer" "size_t buflen" "struct hostent **result" "int *h_errnop" 67dc689973SFernando Apesteguía.Ft int 68dc689973SFernando Apesteguía.Fn gethostbyname2_r "const char *name" "int af" "struct hostent *he" "char *buffer" "size_t buflen" "struct hostent **result" "int *h_errnop" 69dc689973SFernando Apesteguía.Ft int 70dc689973SFernando 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 71bc7413d0SPeter Wemm.Sh DESCRIPTION 723bc371d2SRuslan Ermilov.Bf -symbolic 733bc371d2SRuslan ErmilovThe 743bc371d2SRuslan Ermilov.Xr getaddrinfo 3 753bc371d2SRuslan Ermilovand 763bc371d2SRuslan Ermilov.Xr getnameinfo 3 773bc371d2SRuslan Ermilovfunctions are preferred over the 783bc371d2SRuslan Ermilov.Fn gethostbyname , 793bc371d2SRuslan Ermilov.Fn gethostbyname2 , 803bc371d2SRuslan Ermilovand 813bc371d2SRuslan Ermilov.Fn gethostbyaddr 823bc371d2SRuslan Ermilovfunctions. 833bc371d2SRuslan Ermilov.Ef 843bc371d2SRuslan Ermilov.Pp 85bc7413d0SPeter WemmThe 86c293d821SPeter Wemm.Fn gethostbyname , 87c293d821SPeter Wemm.Fn gethostbyname2 88fdf4c7afSPeter Wemmand 89bc7413d0SPeter Wemm.Fn gethostbyaddr 90bc7413d0SPeter Wemmfunctions 91fdf4c7afSPeter Wemmeach return a pointer to an object with the 92fdf4c7afSPeter Wemmfollowing structure describing an internet host 93fdf4c7afSPeter Wemmreferenced by name or by address, respectively. 944460a589SNik Clayton.Pp 954460a589SNik ClaytonThe 964460a589SNik Clayton.Fa name 972efeeba5SRuslan Ermilovargument passed to 984460a589SNik Clayton.Fn gethostbyname 994460a589SNik Claytonor 1004460a589SNik Clayton.Fn gethostbyname2 101c634427cSRuslan Ermilovshould point to a 102c634427cSRuslan Ermilov.Dv NUL Ns -terminated 103c634427cSRuslan Ermilovhostname. 1044460a589SNik ClaytonThe 1054460a589SNik Clayton.Fa addr 1062efeeba5SRuslan Ermilovargument passed to 1074460a589SNik Clayton.Fn gethostbyaddr 1084460a589SNik Claytonshould point to an address which is 1094460a589SNik Clayton.Fa len 1104460a589SNik Claytonbytes long, 1114460a589SNik Claytonin binary form 1121a0a9345SRuslan Ermilov(i.e., not an IP address in human readable 113c634427cSRuslan Ermilov.Tn ASCII 114c634427cSRuslan Ermilovform). 1154460a589SNik ClaytonThe 1160237ec97SPawel Jakub Dawidek.Fa af 1172efeeba5SRuslan Ermilovargument specifies the address family 118c634427cSRuslan Ermilov(e.g.\& 119c634427cSRuslan Ermilov.Dv AF_INET , AF_INET6 , 120c634427cSRuslan Ermilovetc.) of this address. 1214460a589SNik Clayton.Pp 1224460a589SNik ClaytonThe structure returned contains either the information obtained from the name 123942e234dSFernando Apesteguíaserver, broken-out fields from a line in 124248aee62SJacques Vidrine.Pa /etc/hosts , 125248aee62SJacques Vidrineor database entries supplied by the 126491a8429SRuslan Ermilov.Xr yp 8 127248aee62SJacques Vidrinesystem. 128248aee62SJacques VidrineThe order of the lookups is controlled by the 129248aee62SJacques Vidrine.Sq hosts 130248aee62SJacques Vidrineentry in 131248aee62SJacques Vidrine.Xr nsswitch.conf 5 . 132bc7413d0SPeter Wemm.Bd -literal 133fdf4c7afSPeter Wemmstruct hostent { 134fdf4c7afSPeter Wemm char *h_name; /* official name of host */ 135fdf4c7afSPeter Wemm char **h_aliases; /* alias list */ 136fdf4c7afSPeter Wemm int h_addrtype; /* host address type */ 137fdf4c7afSPeter Wemm int h_length; /* length of address */ 138fdf4c7afSPeter Wemm char **h_addr_list; /* list of addresses from name server */ 139fdf4c7afSPeter Wemm}; 140fdf4c7afSPeter Wemm#define h_addr h_addr_list[0] /* address, for backward compatibility */ 141bc7413d0SPeter Wemm.Ed 142bc7413d0SPeter Wemm.Pp 143fdf4c7afSPeter WemmThe members of this structure are: 144bc7413d0SPeter Wemm.Bl -tag -width h_addr_list 145c634427cSRuslan Ermilov.It Va h_name 146fdf4c7afSPeter WemmOfficial name of the host. 147c634427cSRuslan Ermilov.It Va h_aliases 148c634427cSRuslan ErmilovA 149c634427cSRuslan Ermilov.Dv NULL Ns -terminated 150c634427cSRuslan Ermilovarray of alternate names for the host. 151c634427cSRuslan Ermilov.It Va h_addrtype 152c293d821SPeter WemmThe type of address being returned; usually 153bc7413d0SPeter Wemm.Dv AF_INET . 154c634427cSRuslan Ermilov.It Va h_length 155fdf4c7afSPeter WemmThe length, in bytes, of the address. 156c634427cSRuslan Ermilov.It Va h_addr_list 157c634427cSRuslan ErmilovA 158c634427cSRuslan Ermilov.Dv NULL Ns -terminated 159c634427cSRuslan Ermilovarray of network addresses for the host. 160fdf4c7afSPeter WemmHost addresses are returned in network byte order. 161c634427cSRuslan Ermilov.It Va h_addr 162bc7413d0SPeter WemmThe first address in 163c634427cSRuslan Ermilov.Va h_addr_list ; 164bc7413d0SPeter Wemmthis is for backward compatibility. 165c293d821SPeter Wemm.El 166bc7413d0SPeter Wemm.Pp 167fdf4c7afSPeter WemmWhen using the nameserver, 168bc7413d0SPeter Wemm.Fn gethostbyname 169c293d821SPeter Wemmand 170aec5b6f6SAlexey Zelkin.Fn gethostbyname2 171fdf4c7afSPeter Wemmwill search for the named host in the current domain and its parents 172fdf4c7afSPeter Wemmunless the name ends in a dot. 173bc7413d0SPeter WemmIf the name contains no dot, and if the environment variable 174bc7413d0SPeter Wemm.Dq Ev HOSTALIASES 175fdf4c7afSPeter Wemmcontains the name of an alias file, the alias file will first be searched 176fdf4c7afSPeter Wemmfor an alias matching the input name. 177fdf4c7afSPeter WemmSee 178bc7413d0SPeter Wemm.Xr hostname 7 179fdf4c7afSPeter Wemmfor the domain search procedure and the alias file format. 180bc7413d0SPeter Wemm.Pp 181bc7413d0SPeter WemmThe 182c293d821SPeter Wemm.Fn gethostbyname2 183c293d821SPeter Wemmfunction is an evolution of 184c293d821SPeter Wemm.Fn gethostbyname 185c293d821SPeter Wemmwhich is intended to allow lookups in address families other than 186c293d821SPeter Wemm.Dv AF_INET , 187c293d821SPeter Wemmfor example 188c293d821SPeter Wemm.Dv AF_INET6 . 189c293d821SPeter Wemm.Pp 190c293d821SPeter WemmThe 191bc7413d0SPeter Wemm.Fn sethostent 192bc7413d0SPeter Wemmfunction 193bc7413d0SPeter Wemmmay be used to request the use of a connected 194bc7413d0SPeter Wemm.Tn TCP 195bc7413d0SPeter Wemmsocket for queries. 1969eba44bfSCy SchubertQueries will by default use 197b1b1386fSCy Schubert.Tn UDP 19875ea0b76SBenjamin Kadukdatagrams. 19975ea0b76SBenjamin KadukIf the 200bc7413d0SPeter Wemm.Fa stayopen 201b1b1386fSCy Schubertflag is non-zero, a 202bc7413d0SPeter Wemm.Tn TCP 20375ea0b76SBenjamin Kadukconnection to the name server will be used. 20475ea0b76SBenjamin KadukIt will remain open after calls to 205c293d821SPeter Wemm.Fn gethostbyname , 206c293d821SPeter Wemm.Fn gethostbyname2 207fdf4c7afSPeter Wemmor 208b1b1386fSCy Schubert.Fn gethostbyaddr 209b1b1386fSCy Schuberthave completed. 210bc7413d0SPeter Wemm.Pp 211bc7413d0SPeter WemmThe 212bc7413d0SPeter Wemm.Fn endhostent 213bc7413d0SPeter Wemmfunction 214bc7413d0SPeter Wemmcloses the 215bc7413d0SPeter Wemm.Tn TCP 216bc7413d0SPeter Wemmconnection. 217c293d821SPeter Wemm.Pp 218c293d821SPeter WemmThe 219c293d821SPeter Wemm.Fn herror 220c293d821SPeter Wemmfunction writes a message to the diagnostic output consisting of the 2212efeeba5SRuslan Ermilovstring argument 2222efeeba5SRuslan Ermilov.Fa string , 223c634427cSRuslan Ermilovthe constant string 224c634427cSRuslan Ermilov.Qq Li ":\ " , 225c634427cSRuslan Ermilovand a message corresponding to the value of 226c293d821SPeter Wemm.Va h_errno . 227c293d821SPeter Wemm.Pp 228c293d821SPeter WemmThe 229c293d821SPeter Wemm.Fn hstrerror 230c293d821SPeter Wemmfunction returns a string which is the message text corresponding to the 231c293d821SPeter Wemmvalue of the 232c293d821SPeter Wemm.Fa err 2332efeeba5SRuslan Ermilovargument. 234dc689973SFernando Apesteguía.Pp 235dc689973SFernando ApesteguíaFunctions with the 236dc689973SFernando Apesteguía.Em _r 237dc689973SFernando Apesteguíasuffix provide reentrant versions of their respective counterparts. 238dc689973SFernando ApesteguíaThe caller must supply five additional parameters: a 239dc689973SFernando Apesteguía.Vt struct hostent 240dc689973SFernando Apesteguíavariable to be filled on success, a 241dc689973SFernando Apesteguía.Va buffer 242dc689973SFernando Apesteguíaof 243dc689973SFernando Apesteguía.Va buflen 244dc689973SFernando Apesteguíabytes in size, a 245dc689973SFernando Apesteguía.Vt struct hostent 246dc689973SFernando Apesteguía.Va result 247dc689973SFernando Apesteguíavariable that will point to the result on success or be set to 248dc689973SFernando Apesteguía.Dv NULL 249dc689973SFernando Apesteguíaon failure or if the name is not found. 250dc689973SFernando ApesteguíaThe 251dc689973SFernando Apesteguía.Va h_errnop 252dc689973SFernando Apesteguíavariable will be filled with the error code if any. 253dc689973SFernando ApesteguíaAll these functions return 0 on success. 254bc7413d0SPeter Wemm.Sh FILES 255248aee62SJacques Vidrine.Bl -tag -width /etc/nsswitch.conf -compact 256bc7413d0SPeter Wemm.It Pa /etc/hosts 257248aee62SJacques Vidrine.It Pa /etc/nsswitch.conf 258c293d821SPeter Wemm.It Pa /etc/resolv.conf 259bc7413d0SPeter Wemm.El 2604460a589SNik Clayton.Sh EXAMPLES 2614460a589SNik ClaytonPrint out the hostname associated with a specific IP address: 262c634427cSRuslan Ermilov.Bd -literal -offset indent 2634460a589SNik Claytonconst char *ipstr = "127.0.0.1"; 2644460a589SNik Claytonstruct in_addr ip; 2654460a589SNik Claytonstruct hostent *hp; 2664460a589SNik Clayton 2674460a589SNik Claytonif (!inet_aton(ipstr, &ip)) 2684460a589SNik Clayton errx(1, "can't parse IP address %s", ipstr); 2694460a589SNik Clayton 2703da59cd0SHajimu UMEMOTOif ((hp = gethostbyaddr((const void *)&ip, 2714460a589SNik Clayton sizeof ip, AF_INET)) == NULL) 2724460a589SNik Clayton errx(1, "no name associated with %s", ipstr); 2734460a589SNik Clayton 2744460a589SNik Claytonprintf("name associated with %s is %s\en", ipstr, hp->h_name); 275c634427cSRuslan Ermilov.Ed 276bc7413d0SPeter Wemm.Sh DIAGNOSTICS 277fdf4c7afSPeter WemmError return status from 278c293d821SPeter Wemm.Fn gethostbyname , 279c293d821SPeter Wemm.Fn gethostbyname2 280fdf4c7afSPeter Wemmand 281bc7413d0SPeter Wemm.Fn gethostbyaddr 282c634427cSRuslan Ermilovis indicated by return of a 283c634427cSRuslan Ermilov.Dv NULL 284c634427cSRuslan Ermilovpointer. 2856b0a380fSSam LawranceThe integer 286bc7413d0SPeter Wemm.Va h_errno 287fdf4c7afSPeter Wemmmay then be checked to see whether this is a temporary failure 288fdf4c7afSPeter Wemmor an invalid or unknown host. 289fdf4c7afSPeter WemmThe routine 290bc7413d0SPeter Wemm.Fn herror 291fdf4c7afSPeter Wemmcan be used to print an error message describing the failure. 292fdf4c7afSPeter WemmIf its argument 293bc7413d0SPeter Wemm.Fa string 294bc7413d0SPeter Wemmis 295c634427cSRuslan Ermilov.Pf non- Dv NULL , 296bc7413d0SPeter Wemmit is printed, followed by a colon and a space. 297fdf4c7afSPeter WemmThe error message is printed with a trailing newline. 298bc7413d0SPeter Wemm.Pp 299bc7413d0SPeter WemmThe variable 300bc7413d0SPeter Wemm.Va h_errno 301fdf4c7afSPeter Wemmcan have the following values: 302bc7413d0SPeter Wemm.Bl -tag -width HOST_NOT_FOUND 303bc7413d0SPeter Wemm.It Dv HOST_NOT_FOUND 304fdf4c7afSPeter WemmNo such host is known. 305bc7413d0SPeter Wemm.It Dv TRY_AGAIN 306fdf4c7afSPeter WemmThis is usually a temporary error 307fdf4c7afSPeter Wemmand means that the local server did not receive 308fdf4c7afSPeter Wemma response from an authoritative server. 309fdf4c7afSPeter WemmA retry at some later time may succeed. 310bc7413d0SPeter Wemm.It Dv NO_RECOVERY 311fdf4c7afSPeter WemmSome unexpected server failure was encountered. 312fdf4c7afSPeter WemmThis is a non-recoverable error. 313bc7413d0SPeter Wemm.It Dv NO_DATA 314fdf4c7afSPeter WemmThe requested name is valid but does not have an IP address; 315fdf4c7afSPeter Wemmthis is not a temporary error. 316fdf4c7afSPeter WemmThis means that the name is known to the name server but there is no address 317fdf4c7afSPeter Wemmassociated with this name. 318fdf4c7afSPeter WemmAnother type of request to the name server using this domain name 319fdf4c7afSPeter Wemmwill result in an answer; 320fdf4c7afSPeter Wemmfor example, a mail-forwarder may be registered for this domain. 321bc7413d0SPeter Wemm.El 322bc7413d0SPeter Wemm.Sh SEE ALSO 3231fed0019SArchie Cobbs.Xr getaddrinfo 3 , 3243bc371d2SRuslan Ermilov.Xr getnameinfo 3 , 325a289e937SRuslan Ermilov.Xr inet_aton 3 , 326bc7413d0SPeter Wemm.Xr resolver 3 , 327bc7413d0SPeter Wemm.Xr hosts 5 , 328942e234dSFernando Apesteguía.Xr hostname 7 329f6d234d8SGordon Bergling.Sh HISTORY 330f6d234d8SGordon BerglingThe 331f6d234d8SGordon Bergling.Fn herror 332f6d234d8SGordon Berglingfunction appeared in 333f6d234d8SGordon Bergling.Bx 4.3 . 334f6d234d8SGordon BerglingThe 335f6d234d8SGordon Bergling.Fn endhostent , 336f6d234d8SGordon Bergling.Fn gethostbyaddr , 337f6d234d8SGordon Bergling.Fn gethostbyname , 338f6d234d8SGordon Bergling.Fn gethostent , 339f6d234d8SGordon Berglingand 340f6d234d8SGordon Bergling.Fn sethostent 341f6d234d8SGordon Berglingfunctions appeared in 342f6d234d8SGordon Bergling.Bx 4.2 . 343f6d234d8SGordon BerglingThe 344f6d234d8SGordon Bergling.Fn gethostbyname2 345f6d234d8SGordon Berglingfunction first appeared in 346f6d234d8SGordon Bergling.Tn BIND 347f6d234d8SGordon Berglingversion 4.9.4. 348*47d0f36cSDavid E. O'BrienThe 349*47d0f36cSDavid E. O'Brien.Fn gethostbyname_r 350*47d0f36cSDavid E. O'Brienfunction first appeared in 351*47d0f36cSDavid E. O'Brien.Fx 6.2 . 352f6d234d8SGordon Bergling.Sh CAVEATS 353bc7413d0SPeter WemmThe 354bc7413d0SPeter Wemm.Fn gethostent 355bc7413d0SPeter Wemmfunction 356fdf4c7afSPeter Wemmis defined, and 357bc7413d0SPeter Wemm.Fn sethostent 358fdf4c7afSPeter Wemmand 359bc7413d0SPeter Wemm.Fn endhostent 360fdf4c7afSPeter Wemmare redefined, 361fdf4c7afSPeter Wemmwhen 362fe71ab1cSPhilippe Charnier.Lb libc 363fdf4c7afSPeter Wemmis built to use only the routines to lookup in 364bc7413d0SPeter Wemm.Pa /etc/hosts 365fdf4c7afSPeter Wemmand not the name server. 366bc7413d0SPeter Wemm.Pp 367bc7413d0SPeter WemmThe 368bc7413d0SPeter Wemm.Fn gethostent 369bc7413d0SPeter Wemmfunction 370fdf4c7afSPeter Wemmreads the next line of 371bc7413d0SPeter Wemm.Pa /etc/hosts , 372fdf4c7afSPeter Wemmopening the file if necessary. 373bc7413d0SPeter Wemm.Pp 374bc7413d0SPeter WemmThe 375bc7413d0SPeter Wemm.Fn sethostent 376bc7413d0SPeter Wemmfunction 377bc7413d0SPeter Wemmopens and/or rewinds the file 378bc7413d0SPeter Wemm.Pa /etc/hosts . 379bc7413d0SPeter WemmIf the 380bc7413d0SPeter Wemm.Fa stayopen 381fdf4c7afSPeter Wemmargument is non-zero, 382bc7413d0SPeter Wemmthe file will not be closed after each call to 383c293d821SPeter Wemm.Fn gethostbyname , 384c293d821SPeter Wemm.Fn gethostbyname2 385fdf4c7afSPeter Wemmor 386bc7413d0SPeter Wemm.Fn gethostbyaddr . 387bc7413d0SPeter Wemm.Pp 388bc7413d0SPeter WemmThe 389bc7413d0SPeter Wemm.Fn endhostent 390bc7413d0SPeter Wemmfunction 391bc7413d0SPeter Wemmcloses the file. 392bc7413d0SPeter Wemm.Sh BUGS 393aa2f4ec7SHajimu UMEMOTOThese functions use a thread-specific data storage; 394bc7413d0SPeter Wemmif the data is needed for future use, it should be 395bc7413d0SPeter Wemmcopied before any subsequent calls overwrite it. 396aa2f4ec7SHajimu UMEMOTO.Pp 397aa2f4ec7SHajimu UMEMOTOThough these functions are thread-safe, 398aa2f4ec7SHajimu UMEMOTOstill it is recommended to use the 39933dee819SBrian Feldman.Xr getaddrinfo 3 400aa2f4ec7SHajimu UMEMOTOfamily of functions, instead. 401aa2f4ec7SHajimu UMEMOTO.Pp 402bc7413d0SPeter WemmOnly the Internet 403fdf4c7afSPeter Wemmaddress format is currently understood. 404