НАЗВАНИЕ

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.