getipnodebyname

Autres langues

Langue: pl

Autres versions - même langue

Version: 2002-04-03 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

NAZWA

getipnodebyname, getipnodebyaddr, freehostent - okre¶lenie nazw i adresów sieciowych hosta

SK£ADNIA


#include <sys/types.h>

#include <sys/socket.h>

#include <netdb.h>



struct hostent *getipnodebyname(const char *name,

                         int af, int flags,

                         int *error_num);



struct hostent *getipnodebyaddr(const void *addr,

                         size_t len, int af,

                         int *error_num);



void freehostent(struct hostent *ip);

OPIS

Te funkcje s± przestarza³e. Zamiast nich nale¿y u¿ywaæ getaddrinfo(3) i getnameinfo(3).

Funkcje getipnodebyname(3) i getipnodebyaddr(3) zwracaj± nazwy i adresy hosta sieciowego. Wynik jest wska¼nikiem do struktury o nastêpuj±cej postaci:


struct  hostent {

        char    *h_name;

        char    **h_aliases;

        int     h_addrtype;

        int     h_length;

        char    **h_addr_list;

};

Funkcje te zast±pi³y funkcje gethostbyname(3) i gethostbyaddr(3), które mog³y udostêpniaæ jedynie adresy nale¿±ce do rodziny adresów sieciowych IPv4. Funkcje getipnodebyname(3) i getipnodebyaddr(3) mog± udostêpniaæ adresy nale¿±ce do wielu rodzin adresów sieciowych.

W odró¿nieniu od funkcji gethostby, funkcje te zwracaj± wska¼niki do pamiêci przydzielonej dynamicznie. Funkcja freehostent(3) s³u¿y do zwalniania przydzielonej dynamicznie pamiêci, gdy wywo³uj±cy ju¿ nie potrzebuje struktury hostent.

parametry getipnodebyname

Funkcja getipnodebyname(3) wyszukuje adresy sieciowe hosta podanego w parametrze name. Parametr af mo¿e zawieraæ jedn± z nastêpuj±cych warto¶ci:
AF_INET
Parametr name wskazuje na adres IPv4 (w postaci czterech rozdzielonych kropkami liczb) lub na nazwê hosta sieci IPv4.
AF_INET6
Parametr name wskazuje na adres IPv6 (w postaci szesnastkowej) lub na nazwê hosta sieci IPv6.

Parametr flags zawiera dodatkowe opcje. Mo¿na podaæ wiêcej ni¿ jedn± opcjê poprzez wykonanie na nich logicznego OR. flags powinno byæ ustawione na 0, gdy ¿adne opcje nie s± potrzebne.

AI_V4MAPPED
Ten znacznik u¿yty ³±cznie z AF_INET6 okre¶la, ¿e zapytanie ma dotyczyæ adresów IPv4, a nie IPv6; adresy IPv4 bêd± odwzorowane na adresy IPv6.
AI_ALL
Ten znacznik u¿yty ³±cznie z AI_V4MAPPED okre¶la, ¿e zapytanie ma dotyczyæ zarówno adresów IPv4, jak i IPv6. Znalezione adresy IPv4 zostan± odwzorowane na adresy IPv6.
AI_ADDRCONFIG
Ten znacznik u¿yty ³±cznie z AF_INET6 oznacza, ¿e dalsze zapytania dotycz±ce adresów IPv6 nie powinny byæ wykonywane, je¿eli system nie posiada adresu IPv6 przydzielonego do którego¶ z interfejsów sieciowych oraz, ¿e dalsze zapytania dotycz±ce adresów IPv4 nie powinny byæ wykonywane, je¿eli system nie posiada adresu IPv4 przydzielonego do którego¶ z interfejsów sieciowych. Znacznik ten mo¿e zostaæ u¿yty samodzielnie lub ³±cznie ze znacznikiem AI_V4MAPPED.
AI_ALL
Ten znacznik jest równowa¿ny (AI_ADDRCONFIG | AI_V4MAPPED).

parametry getipnodebyaddr

Funkcja getipnodebyaddr(3) poszukuje nazwy hista, którego adres sieciowy jest podany w parametrze addr. Parametr af mo¿e mieæ jedn± z nastêpuj±cych warto¶ci:
AF_INET
Parametr addr wskazuje na strukturê struct in_addr; len musi mieæ wówczas warto¶æ sizeof(struct in_addr).
AF_INET6
Parametr addr wskazuje na strukturê struct in6_addr; len musi mieæ wówczas warto¶æ sizeof(struct in6_addr).

WARTO¦Æ ZWRACANA

Gdy wyst±pi b³±d, zwrócony zostanie wska¼nik NULL a error_num bêdzie zawieraæ kod b³êdu wed³ug nastêpuj±cej listy:
HOST_NOT_FOUND
Nie znaleziono nazwy lub adresu sieciowego hosta.
NO_ADDRESS
Serwer DNS rozpozna³ adres sieciowy lub nazwê hosta, ale nie zwróci³ odpowiedzi. Mo¿e siê to zdarzyæ, gdy host posiada jedynie adresy IPv4, a zapytanie dotyczy³o jedynie informacji o IPv6, lub odwrotnie.
NO_RECOVERY
Serwer DNS zwróci³ b³±d trwa³y.
TRY_AGAIN
Serwer DNS zwróci³ b³±d tymczasowy. Mo¿e nastêpnym razem bedzie wiêcej szczê¶cia.

W przypadku pomy¶lnego wyniku zapytania zwraca ny jest wska¼nik do struktury hostent zawieraj±cej nastêpuj±ce pola:

h_name
Oficjalna nazwa tego hosta.
h_aliases
Tablica wska¼ników do nieoficjalnych aliasów tego samego hosta. Tablica jest zakoñczona wska¼nikiem NULL.
h_addrtype
Kopia parametru af funkcji getipnodebyname(3) lub getipnodebyaddr(3). h_addrtype bêdzie równe AF_INET, gdy parametr af by³ równy AF_INET. h_addrtype bêdzie równe AF_INET6, gdy parametr af by³ równy AF_INET6.
h_length
Bêdzie równe sizeof(struct in_addr), gdy h_addrtype jest równe AF_INET a sizeof(struct in6_addr), gdy h_addrtype jest równe AF_INET6.
h_addr_list
Tablica zawieraj±ca jeden lub wiêcej wska¼ników do struktur adresów sieciowych danego hosta. Tablica jest zakoñczona wska¼nikiem NULL.

UWAGI

Funkcje te by³y obecne w glibc 2.1.91-95, ale zosta³y ponownie usuniête. Wspieraj± je niektóre systemy uniksopodobne, lecz wszystkie traktuj± te funkcje jako niezalecane.

ZGODNE Z

RFC 2553.

ZOBACZ TAK¯E

getaddrinfo(3), getnameinfo(3), inet_ntop(3), inet_pton(3)