.\" -*- coding: UTF-8 -*-
'\" t
.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" References consulted:
.\"     Linux libc source code
.\"     Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
.\"     386BSD man pages
.\" Modified 1993-05-22, David Metcalfe
.\" Modified 1993-07-25, Rik Faith (faith@cs.unc.edu)
.\" Modified 1997-02-16, Andries Brouwer (aeb@cwi.nl)
.\" Modified 1998-12-21, Andries Brouwer (aeb@cwi.nl)
.\" Modified 2000-08-12, Andries Brouwer (aeb@cwi.nl)
.\" Modified 2001-05-19, Andries Brouwer (aeb@cwi.nl)
.\" Modified 2002-08-05, Michael Kerrisk
.\" Modified 2004-10-31, Andries Brouwer
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH gethostbyname 3 "5 lutego 2023 r." "Linux man\-pages 6.03" 
.SH NAZWA
gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno,
herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r,
gethostbyname_r, gethostent_r \- zwraca wpis sieciowy komputera
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <netdb.h>\fP
.PP
\fBvoid sethostent(int \fP\fIstayopen\fP\fB);\fP
\fBvoid endhostent(void);\fP
.PP
\fB[[deprecated]] extern int h_errno;\fP
.PP
\fB[[deprecated]] struct hostent *gethostbyname(const char *\fP\fIname\fP\fB);\fP
\fB[[deprecated]] struct hostent *gethostbyaddr(const void \fP\fIaddr\fP\fB[.\fP\fIlen\fP\fB],\fP
\fB                                             socklen_t \fP\fIlen\fP\fB, int \fP\fItype\fP\fB);\fP
.PP
\fB[[deprecated]] void herror(const char *\fP\fIs\fP\fB);\fP
\fB[[deprecated]] const char *hstrerror(int \fP\fIerr\fP\fB);\fP
.PP
/* Rozszerzenie systemu V/POSIX */
\fBstruct hostent *gethostent(void);\fP
.PP
/* GNU extensions */
\fB[[deprecated]]\fP
\fBstruct hostent *gethostbyname2(const char *\fP\fIname\fP\fB, int \fP\fIaf\fP\fB);\fP
.PP
\fBint gethostent_r(struct hostent *restrict \fP\fIret\fP\fB,\fP
\fB                 char \fP\fIbuf\fP\fB[restrict .\fP\fIbuflen\fP\fB], size_t \fP\fIbuflen\fP\fB,\fP
\fB                 struct hostent **restrict \fP\fIresult\fP\fB,\fP
\fB                 int *restrict \fP\fIh_errnop\fP\fB);\fP
.PP
\fB[[deprecated]]\fP
\fBint gethostbyaddr_r(const void \fP\fIaddr\fP\fB[restrict .\fP\fIlen\fP\fB], socklen_t \fP\fIlen\fP\fB,\fP
\fB                 int \fP\fItype\fP\fB,\fP
\fB                 struct hostent *restrict \fP\fIret\fP\fB,\fP
\fB                 char \fP\fIbuf\fP\fB[restrict .\fP\fIbuflen\fP\fB], size_t \fP\fIbuflen\fP\fB,\fP
\fB                 struct hostent **restrict \fP\fIresult\fP\fB,\fP
\fB                 int *restrict \fP\fIh_errnop\fP\fB);\fP
\fB[[deprecated]]\fP
\fBint gethostbyname_r(const char *restrict \fP\fIname\fP\fB,\fP
\fB                 struct hostent *restrict \fP\fIret\fP\fB,\fP
\fB                 char \fP\fIbuf\fP\fB[restrict .\fP\fIbuflen\fP\fB], size_t \fP\fIbuflen\fP\fB,\fP
\fB                 struct hostent **restrict \fP\fIresult\fP\fB,\fP
\fB                 int *restrict \fP\fIh_errnop\fP\fB);\fP
\fB[[deprecated]]\fP
\fBint gethostbyname2_r(const char *restrict \fP\fIname\fP\fB, int \fP\fIaf,\fP
\fB                 struct hostent *restrict \fP\fIret\fP\fB,\fP
\fB                 char \fP\fIbuf\fP\fB[restrict .\fP\fIbuflen\fP\fB], size_t \fP\fIbuflen\fP\fB,\fP
\fB                 struct hostent **restrict \fP\fIresult\fP\fB,\fP
\fB                 int *restrict \fP\fIh_errnop\fP\fB);\fP
.fi
.PP
.RS -4
Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)):
.RE
.PP
\fBgethostbyname2\fP(), \fBgethostent_r\fP(), \fBgethostbyaddr_r\fP(),
\fBgethostbyname_r\fP(), \fBgethostbyname2_r\fP():
.nf
    Since glibc 2.19:
        _DEFAULT_SOURCE
    glibc up to and including 2.19:
        _BSD_SOURCE || _SVID_SOURCE
.fi
.PP
\fBherror\fP(), \fBhstrerror\fP():
.nf
    Since glibc 2.19:
        _DEFAULT_SOURCE
    glibc 2.8 to glibc 2.19:
        _BSD_SOURCE || _SVID_SOURCE
    Before glibc 2.8:
        none
.fi
.PP
\fBh_errno\fP:
.nf
    Since glibc 2.19
        _DEFAULT_SOURCE || _POSIX_C_SOURCE < 200809L
    glibc 2.12 to glibc 2.19:
        _BSD_SOURCE || _SVID_SOURCE || _POSIX_C_SOURCE < 200809L
    Before glibc 2.12:
        none
.fi
.SH OPIS
Funkcje \fBgethostbyname*\fP(), \fBgethostbyaddr*\fP(), \fBherror\fP() oraz
\fBhstrerror\fP() są przestarzałe. Aplikacje powinny zamiast nich
używać\fBgetaddrinfo\fP(3), \fBgetnameinfo\fP(3) i \fBgai_strerror\fP(3).
.PP
Funkcja \fBsethostent\fP() określa, jeżeli \fIstayopen\fP jest prawdziwe (1), że
do odpytywania serwera nazw będzie użyte połączenie TCP i to połączenie
będzie otwarte podczas kolejnych zapytań. W przeciwnym wypadku serwer nazw
będzie odpytywany przy użyciu datagramów UDP.
.PP
Funkcja \fBendhostent\fP() kończy połączenie TCP odpytywania serwera nazw.
.PP
Funkcja \fBgethostbyname\fP() dla danego komputera \fIname\fP zwraca strukturę
typu \fIhostent\fP. \fIname\fP jest tutaj albo nazwą komputera, albo adresem IPv4
w standardowej notacji z kropkami (jak opisano w \fBinet_addr\fP(3)). Jeżeli
\fIname\fP jest adresem IPv4, to \fBgethostbyname\fP()  nie wykonuje żadnych
sprawdzeń i po prostu kopiuje \fIname\fP do pola \fIh_name\fP oraz jej odpowiednik
\fIstruct in_addr\fP do pola \fIh_addr_list[0]\fP zwracanej struktury
\fIhostent\fP. Jeżeli \fIname\fP nie kończy się kropką oraz ustawiono zmienną
środowiskową \fBHOSTALIASES\fP, to wyszukiwanie \fIname\fP zacznie się od pliku z
aliasami, wskazywanego przez \fBHOSTALIASES\fP (format tego pliku opisany jest
w \fBhostname\fP(7)). Bieżąca domena i jej domeny nadrzędne są przeszukiwane,
chyba że \fIname\fP kończy się kropką.
.PP
The \fBgethostbyaddr\fP()  function returns a structure of type \fIhostent\fP for
the given host address \fIaddr\fP of length \fIlen\fP and address type \fItype\fP.
Valid address types are \fBAF_INET\fP and \fBAF_INET6\fP (defined in
\fI<sys/socket.h>\fP).  The host address argument is a pointer to a
struct of a type depending on the address type, for example a \fIstruct in_addr *\fP (probably obtained via a call to \fBinet_addr\fP(3))  for address
type \fBAF_INET\fP.
.PP
(Przestarzała) funkcja \fBherror\fP() wypisuje na standardowe wyjście błędów
\fIstderr\fP komunikat błędu przypisany do bieżącej wartości zmiennej
\fIh_errno\fP.
.PP
(Przestarzała) funkcja \fBhstrerror\fP() dla przekazanego numeru błędu
(zazwyczaj \fIh_errno\fP) zwraca odpowiadający mu komunikat błędu.
.PP
.\"
Zapytania o nazwy domenowe z \fBgethostbyname\fP() i \fBgethostbyaddr\fP()
polegają na skonfigurowanych źródłach Name Service Switch
(\fBnsswitch.conf\fP(5)) lub lokalnym serwerze nazw
(\fBnamed\fP(8)). Domyślną\ akcją\ jest odpytanie skonfigurowanych źródeł Name
Service Switch (\fBnsswitch.conf\fP(5), a jeśli się\ to nie powiedzie, lokalnego
serwera nazw (\fBnamed\fP(8)).
.SS Historia
Plik \fBnsswitch.conf\fP(5) jest współczesnym sposobem kontrolowania kolejności
wyszukiwań komputerów.
.PP
W glibc 2.4 i wcześniejszych, do określenia kolejności wyszukiwań komputerów
służyło słowo kluczowe \fIorder\fP zdefiniowane w \fI/etc/host.conf\fP
(\fBhost.conf\fP(5)).
.PP
Struktura \fIhostent\fP zdefiniowana w \fI<netdb.h>\fP następująco:
.PP
.in +4n
.EX
struct hostent {
    char  *h_name;            /* oficjalna nazwa komputera */
    char **h_aliases;         /* lista aliasów */
    int    h_addrtype;        /* typ adresu komputera */
    int    h_length;          /* długość adresu */
    char **h_addr_list;       /* lista adresów */
}
#define h_addr h_addr_list[0] /* dla zachowania zgodności */
                              /* z wcześniejszymi wersjami */
.EE
.in
.PP
Struktra \fIhostent\fP składa się z:
.TP 
\fIh_name\fP
Oficjalna nazwa komputera.
.TP 
\fIh_aliases\fP
Zakończona wskaźnikiem null tablica alternatywnych nazw komputera.
.TP 
\fIh_addrtype\fP
Typ adresu; obecnie zawsze jest to \fBAF_INET\fP lub \fBAF_INET6\fP.
.TP 
\fIh_length\fP
Długość adresu w bajtach.
.TP 
\fIh_addr_list\fP
Zakończona wskaźnikiem null tablica adresów sieciowych komputera (w
sieciowym porządku bajtów).
.TP 
\fIh_addr\fP
Pierwszy adres z \fIh_addr_list\fP \- dla zachowania zgodności ze wcześniejszymi
wersjami
.SH "WARTOŚĆ ZWRACANA"
Funkcje \fBgethostbyname\fP() i \fBgethostbyaddr\fP() zwracają strukturę
\fIhostent\fP lub wskaźnik null w przypadku błędu. W razie błędu, zmienna
\fIh_errno\fP przechowuje numer błędu. Wartość zwrócona, jeśli jest różna od
null, może wskazywać na statyczne dane, patrz UWAGI poniżej.
.SH BŁĘDY
Zmienna \fIh_errno\fP może przyjmować następujące wartości:
.TP 
\fBHOST_NOT_FOUND\fP
Podany komputer jest nieznany.
.TP 
\fBNO_DATA\fP
Żądana nazwa jest prawidłowa, lecz nie posiada adresu IP. Inny typ żądania
skierowany do serwera nazw dla tej domeny może zwrócić odpowiedź. Stała
\fBNO_ADDRESS\fP jest synonimem \fBNO_DATA\fP.
.TP 
\fBNO_RECOVERY\fP
Wystąpił trwały błąd serwera nazw.
.TP 
\fBTRY_AGAIN\fP
Autorytatywny serwer nazw zwrócił tymczasowy błąd. Proszę spróbować ponownie
później.
.SH PLIKI
.TP 
\fI/etc/host.conf\fP
plik konfiguracyjny biblioteki resolver
.TP 
\fI/etc/hosts\fP
plik bazy danych komputerów
.TP 
\fI/etc/nsswitch.conf\fP
plik konfiguracyjny serwisów nazw (NSS)
.SH ATRYBUTY
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku
\fBattributes\fP(7).
.ad l
.nh
.TS
allbox;
lb lb lbx
l l l.
Interfejs	Atrybut	Wartość
T{
\fBgethostbyname\fP()
T}	Bezpieczeństwo wątkowe	T{
MT\-Unsafe race:hostbyname env
locale
T}
T{
\fBgethostbyaddr\fP()
T}	Bezpieczeństwo wątkowe	T{
MT\-Unsafe race:hostbyaddr env
locale
T}
T{
\fBsethostent\fP(),
\fBendhostent\fP(),
\fBgethostent_r\fP()
T}	Bezpieczeństwo wątkowe	T{
MT\-Unsafe race:hostent env
locale
T}
T{
\fBherror\fP(),
\fBhstrerror\fP()
T}	Bezpieczeństwo wątkowe	MT\-Safe
T{
\fBgethostent\fP()
T}	Bezpieczeństwo wątkowe	T{
MT\-Unsafe race:hostent
race:hostentbuf env locale
T}
T{
\fBgethostbyname2\fP()
T}	Bezpieczeństwo wątkowe	T{
MT\-Unsafe race:hostbyname2
env locale
T}
T{
\fBgethostbyaddr_r\fP(),
\fBgethostbyname_r\fP(),
\fBgethostbyname2_r\fP()
T}	Bezpieczeństwo wątkowe	MT\-Safe env locale
.TE
.hy
.ad
.sp 1
W powyższej tabeli, \fIhostent\fP w \fIrace:hostent\fP oznacza, że jeśli któraś z
funkcji \fBsethostent\fP(), \fBgethostent\fP(), \fBgethostent_r\fP() lub
\fBendhostent\fP() jest używana równolegle w różnych wątkach programu, może
nastąpić sytuacja wyścigu danych.
.SH STANDARDY
POSIX.1\-2001 definiuje \fBgethostbyname\fP(), \fBgethostbyaddr\fP(),
\fBsethostent\fP(), \fBendhostent\fP(), \fBgethostent\fP() i \fIh_errno\fP;
\fBgethostbyname\fP(), \fBgethostbyaddr\fP() i \fIh_errno\fP są oznaczone jako
starzejące się. POSIX.1\-2008 usuwa definicje \fBgethostbyname\fP(),
\fBgethostbyaddr\fP() oraz \fIh_errno\fP, zalecając używanie zamiast nich
funkcji\fBgetaddrinfo\fP(3) i \fBgetnameinfo\fP(3).
.SH UWAGI
Funkcje \fBgethostbyname\fP() i \fBgethostbyaddr\fP()  mogą zwracać wskaźniki do
danych statycznych, które mogą być nadpisane przez kolejne
wywołania. Kopiowanie \fIstruct hostent\fP nie wystarcza, ponieważ zawiera ona
wskaźniki \- wymagane jest skopiowanie wszystkiego.
.PP
W oryginalnej implementacji BSD, argument \fIlen\fP funkcji \fBgethostbyname\fP()
był typu \fIint\fP. Standard SUS\-v2 jest błędny i określa parametr \fIlen\fP
funkcji \fBgethostbyaddr\fP() jako będący typu \fIsize_t\fP. (Nie jest to
właściwe, ponieważ musi to być typ \fIint\fP, którym \fIsize_t\fP nie
jest. POSIX.1\-2001 używa \fIsocklen_t\fP, co jest OK). Patrz także
\fBaccept\fP(2).
.PP
Prototyp BSD funkcji \fBgethostbyaddr\fP() używa \fIconst char\ *\fP dla trzeciego
argumentu.
.SS "Rozszerzenie System V/POSIX"
.\" e.g., Linux, FreeBSD, UnixWare, HP-UX
.\" e.g., FreeBSD, AIX
POSIX wymaga, aby wywołanie \fBgethostent\fP() zwróciło następny wpis w bazie
danych komputerów. Jeśli używany jest DNS/BIND nie ma to większego sensu,
ale może być uzasadnione, jeśli baza danych komputerów jest plikiem, który
można odczytać linia po linii. Wiele systemów funkcja o tej nazwie czyta
plik \fI/etc/hosts\fP. Może być on dostępny tylko wtedy, gdy biblioteka została
skompilowana bez wsparcia dla DNS\-u. Wersja glibc ignoruje wpisy IPv6. Ta
funkcja nie jest wielowątkowa, glibc dodaje jej  wielowątkową wersję
\fBgethostent_r\fP().
.SS "Rozszerzenia GNU"
Glibc2 ma także funkcję \fBgethostbyname2\fP(), która działa jak
\fBgethostbyname\fP(), ale pozwala określić rodzinę adresów, do której musi
należeć zadany adres.
.PP
Glibc2 ma także wielowątkowe wersje \fBgethostent_r\fP(), \fBgethostbyaddr_r\fP(),
\fBgethostbyname_r\fP() i \fBgethostbyname2_r\fP(). Proces wywołujący przekazuje
strukturę \fIhostent\fP w \fIret\fP, który będzie wypełniony, gdy funkcja zakończy
się pomyślnie, oraz tymczasowy bufor roboczy \fIbuf\fP o rozmiarze
\fIbuflen\fP. Po pomyślnym wywołaniu, \fIresult\fP będzie wskazywał na wynik. W
razie błędu lub gdy nie znaleziono żadnego wpisu \fIresult\fP będzie ustawiony
na NULL. Funkcje zwracają one 0 w przypadku powodzenia lub liczbę różną od
zera w razie błędu. Oprócz błędów, które mogą zwrócić\ niewielowątkowe wersje
tych funkcji, funkcje mogą zwróć błąd \fBRANGE\fP, jeśli \fIbuf\fP jest za mały \-
w takim wypadku należy powtórzyć wywołanie funkcji z większym
buforem. Globalna zmienna \fIh_errno\fP nie jest modyfikowana, ale numer błędu
jest przekazywany w zmiennej, której adres został podany w \fIh_errnop\fP.
.SH BŁĘDY
.\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973
\fBgethostbyname\fP() nie rozpoznaje komponentów oddzielonego kropkami łańcucha
adresu IPv4, jeśli są one wyrażone jako liczby szesnastkowe.
.SH "ZOBACZ TAKŻE"
.\" .BR getipnodebyaddr (3),
.\" .BR getipnodebyname (3),
\fBgetaddrinfo\fP(3), \fBgetnameinfo\fP(3), \fBinet\fP(3), \fBinet_ntop\fP(3),
\fBinet_pton\fP(3), \fBresolver\fP(3), \fBhosts\fP(5), \fBnsswitch.conf\fP(5),
\fBhostname\fP(7), \fBnamed\fP(8)
.\" .BR resolv+ (8)
.PP
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są:
Robert Luberda <robert@debian.org>
i
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .