Получение информации об узлах сети Существуют библиотечные процедуры, позволяющие процессу извлекать информацию об узле сети, если известно его доменное имя или IP-адрес. При использовании библиотечных программ на машине, которая располагает доступом к серверу доменных имен, процесс становится клиентом системы доменных имен. Для этого библиотечные программы посылают серверу запрос и ожидают ответа на него. При использовании библиотечных программ в системах, не имеющих доступа к системе доменных имен (например, на машине, не подключенной к сети Internet), программы получают необходимую информацию из базы данных, которая хранится на вспомогательном запоминающем устройстве. Аквариумы и все для них - аквариумы. Аквариумный интернет магазин.

Функция gethostbyname возвращает указатель на структуру, содержащую информацию об узле сети, имя которого передано ей в качестве параметра. Вызов функции имеет следующий синтаксис:

указатель = gethostbyname(адрес-имени)

Параметр адрес-имени — это указатель на строку символов, которая содержит доменное имя узла сети. Возвращаемое функцией значение является указателем на структуру, которая содержит следующую информацию: официальное имя узла сети, список зарегистрированных для узла сети псевдонимов, тип адреса узла сети (т.е. является ли его адрес IP-адресом), длину адреса и список одного или нескольких адресов для этого узла сети. Подробную информацию об этой функции можно найти в справочнике для программиста системы UNIX (UNIX Programmer's Manual).

С помощью функции gethostbyaddr можно получить такую же информацию, как и с помощью функции gethostbyname. Отличие между ними заключается в том, что функции gethostbyaddr в качестве параметра передается адрес узла сети:

указатель = gethostbyaddr (адрес, длина, тип)

Параметр адрес — это указатель на последовательность байтов, содержащую адрес узла сети. Параметр длина — целое число, которое задает длину адреса, а параметр тип — целое число, определяющее тип адреса (например, то, что адрес является IP-адресом).

Как уже упоминалось выше, последовательный доступ к базе данных узлов сети выполняется с помощью процедур sethostent, gethostent и endhostent.

Получение информации о сетях

Для получения информации о сетях узлы сети либо используют систему доменных имен, либо ведут свою несложную базу данных. В ней хранится информация обо всех сетях объединенной сети, к которой эти узлы принадлежат. В библиотеку сокетов входит пять процедур, которые позволяют процессу получить доступ к базе данных сетей. Функция getnetbyname извлекает и форматирует содержимое элемента базы данных по указанному доменному имени сети. Вызов этой функции имеет следующий синтаксис:

указатель = getnetbyname(адрес-имени)

Здесь параметр адрес-имени является указателем на строку, содержащую доменное имя сети, для которой необходимо получить информацию. Возвращаемое функцией значение представляет собой указатель на структуру, в полях которой хранится официальное имя сети, список зарегистрированных псевдонимов, тип адреса, выраженный числом целого типа, и 32-битовые адреса сети (т.е. IP-адреса, в которых часть, относящаяся к узлу сети, обозначена нулем).

Процесс вызывает библиотечную процедуру getnetbyaddr, когда ему необходимо найти информацию о сети по ее адресу. Вызов этой функции имеет следующий синтаксис:

указатель = getnetbyaddr (адрес-сети, тип-адреса)

Параметр адрес-сети — это 32-битовый адрес сети, а параметр тип-адреса — целое число, определяющее тип предыдущего параметра. Процедуры setnetent, getnetent и endnetent предоставляют последовательный доступ к базе данных сетей.

Похожие статьи Меню Опрос Фото Популярное