.\" -*- 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 "20 lipca 2023 r." "Linux man\-pages 6.05.01" .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 \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\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\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). .TS allbox; lb lb lbx l l l. Interfejs Atrybut Wartość T{ .na .nh \fBgethostbyname\fP() T} Bezpieczeństwo wątkowe T{ .na .nh MT\-Unsafe race:hostbyname env locale T} T{ .na .nh \fBgethostbyaddr\fP() T} Bezpieczeństwo wątkowe T{ .na .nh MT\-Unsafe race:hostbyaddr env locale T} T{ .na .nh \fBsethostent\fP(), \fBendhostent\fP(), \fBgethostent_r\fP() T} Bezpieczeństwo wątkowe T{ .na .nh MT\-Unsafe race:hostent env locale T} T{ .na .nh \fBherror\fP(), \fBhstrerror\fP() T} Bezpieczeństwo wątkowe MT\-bezpieczne T{ .na .nh \fBgethostent\fP() T} Bezpieczeństwo wątkowe T{ .na .nh MT\-Unsafe race:hostent race:hostentbuf env locale T} T{ .na .nh \fBgethostbyname2\fP() T} Bezpieczeństwo wątkowe T{ .na .nh MT\-Unsafe race:hostbyname2 env locale T} T{ .na .nh \fBgethostbyaddr_r\fP(), \fBgethostbyname_r\fP(), \fBgethostbyname2_r\fP() T} Bezpieczeństwo wątkowe MT\-bezpieczne env locale .TE .sp 1 In the above table, \fIhostent\fP in \fIrace:hostent\fP signifies that if any of the functions \fBsethostent\fP(), \fBgethostent\fP(), \fBgethostent_r\fP(), or \fB\%endhostent\fP() are used in parallel in different threads of a program, then data races could occur. .SH STANDARDY .TP \fBsethostent\fP() .TQ \fBendhostent\fP() .TQ \fBgethostent\fP() POSIX.1\-2008. .TP \fBgethostent_r\fP() GNU. .TP Others: None. .SH HISTORIA .TP \fBsethostent\fP() .TQ \fBendhostent\fP() .TQ \fBgethostent\fP() POSIX.1\-2001. .TP \fBgethostbyname\fP() .TQ \fBgethostbyaddr\fP() .TQ \fIh_errno\fP Marked obsolescent in POSIX.1\-2001. Removed in POSIX.1\-2008, recommending the use of \fBgetaddrinfo\fP(3) and \fBgetnameinfo\fP(3) instead. .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 USTERKI .\" 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 i Michał Kułach . .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 .