GETHOSTBYADDR(3)
GETHOSTBYADDR(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; /* адрес */ };
ЭЛЕМЕНТЫ СТРУКТУРЫ
Официальное имя главной машины. |
Массив альтернативных имен главной машины, оканчивающийся нулем. |
Тип возвращаемого адреса; в настоящее время всегда AF_INET. |
Длина адреса в байтах. |
Указатель на сетевой адрес для главной машины. |
Функция gethostent считывает следующую строку файла, в случае необходимости открывая этот файл.
Функция sethostent открывает и переходит к началу файла. Если флаг stayopen имеет ненулевое значение, главная БД не будет закрываться после каждого вызова функции gethostent.
Функция endhostent закрывает файл.
Функции gethostbyname и gethostbyaddr последовательно просматривают файл с самого начала в поисках имени или адреса главной машины.
ФАЙЛЫ
/etc/hosts
ДИАГНОСТИКА
По достижении конца файла или в случае появления ошибки возвращается нулевой указатель.
ЗАМЕЧАНИЯ
Вся информация сохраняется в статической области, поэтому в целях сохранения ее необходимо скопировать. Адрес может иметь только формат Internet.