">
НАЗВАНИЕ
gethostent, gethostbyaddr, gethostbyname, sethostent,
endhostent - получить сведения о главной сетевой машине
СИНТАКСИС
#include <netdb.h> struct hostent *gethostent() struct hostent *gethostbyname(name) char *name; struct hostent *gethostbyaddr(addr,len,type) char *addr; int len,type; sethostent(stayopen) int stayopen endhostent()
ОПИСАНИЕ
Функции gethostent, gethostbyname и gethostbyaddr возвращают
указатель на объект, имеющий следующую структуру и описывающий
строку в главной сетевой БД /etc/hosts:
struct hostent { char *h_name; /* официальное host-имя */ char **h_aliases; /* список псевдонимов */ int h_addrtype; /* тип адреса */ int h_length; /* длина адреса */ char *h_addr; /* адрес */ };
ЭЛЕМЕНТЫ СТРУКТУРЫ
h_name | Официальное имя главной машины. |
---|---|
h_aliases | Массив альтернативных имен главной машины, оканчивающийся нулем. |
h_addrtype | Тип возвращаемого адреса; в настоящее время всегда AF_INET. |
h_length | Длина адреса в байтах. |
h_addr | Указатель на сетевой адрес для главной машины. |
Функция gethostent считывает следующую строку файла, в случае необходимости открывая этот файл.
Функция sethostent открывает и переходит к началу файла. Если флаг stayopen имеет ненулевое значение, главная БД не будет закрываться после каждого вызова функции gethostent.
Функция endhostent закрывает файл.
Функции gethostbyname и gethostbyaddr последовательно просматривают файл с самого начала в поисках имени или адреса главной машины.
ФАЙЛЫ
/etc/hosts
ДИАГНОСТИКА
По достижении конца файла или в случае появления ошибки возвращается нулевой указатель.
ЗАМЕЧАНИЯ
Вся информация сохраняется в статической области, поэтому в
целях сохранения ее необходимо скопировать. Адрес может иметь
только формат Internet.