getipnodebyname(3) Library Functions Manual getipnodebyname(3) NAZWA getipnodebyname, getipnodebyaddr, freehostent - okreslenie nazw i adresow sieciowych maszyny BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include #include #include [[deprecated]] struct hostent *getipnodebyname(const char *name, int af, int flags, int *error_num); [[deprecated]] struct hostent *getipnodebyaddr(const void addr[.len], size_t len, int af, int *error_num); [[deprecated]] void freehostent(struct hostent *ip); OPIS Te funkcje sa przestarzale (i niedostepne w glibc). Zamiast nich nalezy uzywac getaddrinfo(3) i getnameinfo(3). Funkcje getipnodebyname() i getipnodebyaddr() zwracaja nazwy i adresy komputera sieciowego. Wynik jest wskaznikiem do struktury o nastepujacej postaci: struct hostent { char *h_name; char **h_aliases; int h_addrtype; int h_length; char **h_addr_list; }; Funkcje te zastapily funkcje gethostbyname(3) i gethostbyaddr(3), ktore mogly udostepniac jedynie adresy nalezace do rodziny adresow sieciowych IPv4. Funkcje getipnodebyname() i getipnodebyaddr() moga udostepniac adresy nalezace do wielu rodzin adresow sieciowych. W odroznieniu od funkcji gethostby, funkcje te zwracaja wskazniki do pamieci przydzielonej dynamicznie. Funkcja freehostent() sluzy do zwalniania przydzielonej dynamicznie pamieci, gdy wywolujacy juz nie potrzebuje struktury hostent. Argumenty funkcji getipnodebyname() Funkcja getipnodebyname() wyszukuje adresy sieciowe komputera podanego w argumencie name. Argument af moze zawierac jedna z nastepujacych wartosci: AF_INET Parametr name wskazuje na adres IPv4 (w postaci czterech rozdzielonych kropkami liczb) lub na nazwe komputera sieci IPv4. AF_INET6 Parametr name wskazuje na adres IPv6 (w postaci szesnastkowej) lub na nazwe komputera sieci IPv6. Parametr flags zawiera dodatkowe opcje. Mozna podac wiecej niz jedna opcje przez wykonanie na nich bitowego OR. flags powinno byc ustawione na 0, gdy zadne opcje nie sa potrzebne. AI_V4MAPPED Ten znacznik uzyty lacznie z AF_INET6 okresla, ze zapytanie ma dotyczyc adresow IPv4, a nie IPv6; adresy IPv4 beda odwzorowane na adresy IPv6. AI_ALL Ten znacznik uzyty lacznie z AI_V4MAPPED okresla, ze zapytanie ma dotyczyc zarowno adresow IPv4, jak i IPv6. Znalezione adresy IPv4 zostana odwzorowane na adresy IPv6. AI_ADDRCONFIG Ten znacznik uzyty lacznie z AF_INET6 oznacza, ze dalsze zapytania dotyczace adresow IPv6 nie powinny byc wykonywane, jezeli system nie ma adresu IPv6 przydzielonego do ktoregos z interfejsow sieciowych, oraz, ze dalsze zapytania dotyczace adresow IPv4 nie powinny byc wykonywane, jezeli system nie ma adresu IPv4 przydzielonego do ktoregos z interfejsow sieciowych. Znacznik ten moze zostac uzyty samodzielnie lub lacznie ze znacznikiem AI_V4MAPPED. AI_DEFAULT Ten znacznik jest rownowazny (AI_ADDRCONFIG | AI_V4MAPPED). Argumenty funkcji getipnodebyaddr() Funkcja getipnodebyaddr() poszukuje nazwy maszyny, ktorej adres sieciowy jest podany w parametrze addr. Argument af moze miec jedna z nastepujacych wartosci: AF_INET Parametr addr wskazuje na strukture struct in_addr; len musi miec wowczas wartosc sizeof(struct in_addr). AF_INET6 Parametr addr wskazuje na strukture struct in6_addr; len musi miec wowczas wartosc sizeof(struct in6_addr). WARTOSC ZWRACANA Gdy wystapi blad, zwrocony zostanie NULL, a error_num bedzie zawierac kod bledu wedlug nastepujacej listy: HOST_NOT_FOUND Nie znaleziono nazwy lub adresu sieciowego maszyny. NO_ADDRESS Serwer DNS rozpoznal adres sieciowy lub nazwe maszyny, ale nie zwrocil odpowiedzi. Moze sie to zdarzyc, gdy maszyn ma jedynie adresy IPv4, a zapytanie dotyczylo jedynie informacji o IPv6, lub odwrotnie. NO_RECOVERY Serwer DNS zwrocil blad trwaly. TRY_AGAIN Serwer DNS zwrocil blad tymczasowy. Moze nastepnym razem bedzie wiecej szczescia. W przypadku pomyslnego wyniku zapytania zwracany jest wskaznik do struktury hostent zawierajacej nastepujace pola: h_name Oficjalna nazwa sieciowa tej maszyny. h_aliases Tablica wskaznikow do nieoficjalnych aliasow tej samej maszyny. Tablica jest zakonczona wskaznikiem NULL. h_addrtype Kopia argumentu af funkcji getipnodebyname() lub getipnodebyaddr(3). h_addrtype bedzie rowne AF_INET, gdy argument af byl rowny AF_INET. h_addrtype bedzie rowne AF_INET6, gdy parametr af byl rowny AF_INET6. h_length Bedzie rowne sizeof(struct in_addr), gdy h_addrtype jest rowne AF_INET, lub sizeof(struct in6_addr), gdy h_addrtype jest rowne AF_INET6. h_addr_list Tablica zawierajaca jeden lub wiecej wskaznikow do struktur adresow sieciowych danego komputera. Tablica jest zakonczona wskaznikiem NULL. STANDARDY None. HISTORIA RFC 2553. Present in glibc 2.1.91-95, but removed again. Several UNIX-like systems support them, but all call them deprecated. ZOBACZ TAKZE getaddrinfo(3), getnameinfo(3), inet_ntop(3), inet_pton(3) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Andrzej Krzysztofowicz i Robert Luberda Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.06 31 pazdziernika 2023 r. getipnodebyname(3)