GETHOSTBYNAME(3)
НАЗВАНИЕ
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.