JMÉNO
gethostbyname, gethostbyaddr, sethostent, endhostent, herror − získej záznam z databáze počítačů
SYNTAXE
#include
<netdb.h>
extern int h_errno;
struct hostent *gethostbyname(const char *name);
struct hostent *gethostbyaddr(const char *addr, int len, int type);
void sethostent(int stayopen);
void endhostent(void);
void herror(const char *s);
POPIS
Funkce gethostbyname() vrací strukturu typu hostent pro zadaný počítač name. Doména počítače a jí nadřazené jsou prohledávány pouze tehdy, nekončí-li name tečkou. Pokud name nekončí tečkou a proměnná prostředí HOSTALIASES je nastavena, bude prvně prohledáván soubor, na který ukazuje proměnná HOSTALIASES.
Funkce gethostbyaddr() vrací strukturu typu hostent pro počítač, jehož adresa addr (délky len a typu type) byla zadána. Jediným platný typem adresy je nyní AF_INET.
Funkce sethostent() specifikuje, je-li stayopen pravdivé (1), že k dotazování budou použity spojené TCP sokety a spojení zůstane mezi jednotlivými dotazy otevřeno. Jinak budou k dotazování použity UDP datagramy.
Funkce endhostent() ukončí TCP spojení pro dotazy na nameserver.
Funkce herror() vytiskne chybovou zprávu, která přísluší hodnotě proměnné h_errno.
Funkce gethostbyname() a gethostbyaddr() používají při své činnosti jak nameservery named(8), tak soubor /etc/hosts, ale samozřejmě i NIS nebo YP, to záleží na pořadí definovaném v /etc/host.conf. (Viz resolv+(8)). Standardně je prvně dotazován named(8) a potom soubor /etc/hosts.
Struktura hostent je definována v <netdb.h> následovně:
struct hostent {
char |
|||
*h_name; |
/* official name of host */ | ||
char |
|||
**h_aliases; |
/* alias list */ | ||
int |
|||
h_addrtype; |
/* host address type */ | ||
int |
|||
h_length; |
/* length of address */ | ||
char |
|||
**h_addr_list; |
/* list of addresses */ |
}
#define h_addr |
h_addr_list[0] |
/* for backward compatibility */ |
Prvky struktury hostent jsou:
h_name |
Oficiální jméno počítače. |
h_aliases
Nulou ukončené pole alternativních jmen počítačů.
h_addrtype
Typ adres, v současné době vždy AF_INET.
h_length
Délka adresy v bajtech.
h_addr_list
Nulou ukončené pole síťových adres počítače v síťovém pořadí dat.
h_addr |
První adresa v h_addr_list kvůli zpětné kompatibilitě. |
NÁVRATOVÁ HODNOTA
Funkce gethostbyname() a gethostbyaddr() vrací strukturu hostent nebo ukazatel NULL v případě výskytu chyby. Potom je nastavena proměnná h_errno.
CHYBY
Proměnná
h_errno může obsahovat
následující hodnoty:
HOST_NOT_FOUND
Specifikovaný počítač je neznámý.
NO_ADDRESS
Jméno je platné, ale nemá žádnou IP adresu.
NO_RECOVERY
Došlo k výskytu neodstranitelné chyby nameserveru.
TRY_AGAIN
Došlo k dočasné chybě autoritativního nameserveru. Zkuste později.
SOUBORY
/etc/host.conf
konfigurační soubor resolveru.
/etc/hosts
databáze počítačů.
SPLŇUJE STANDARDY
BSD 4.3
DALŠÍ INFORMACE
resolver(3), hosts(5), hostname(7), resolv+ (8), named(8)
VAROVÁNÍ
Překlad je pravděpodobně zastaralý. Pokud chcete pomoci s jeho aktualizací, zamiřte na http://man-pages-cs-wiki.homelinux.net/