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.