Получение информации о протоколах

Доступ к базе данных протоколов, которая хранится на каждом узле сети, выполняется с помощью пяти библиотечных процедур. Каждый протокол имеет свое официальное имя, зарегистрированные псевдонимы и официальный номер протокола. Процедура getprotobyname позволяет вызывающей программе получить информацию о протоколе по его имени: указатель = getprotobyname(адрес-имени)

Параметр адрес-имени — это указатель на ASCII-строку, содержащую имя протокола, о котором необходимо получить информацию. Функция возвращает указатель на структуру, в полях которой указывается официальное имя протокола, список его псевдонимов, а также уникальный целочисленный номер, присвоенный протоколу. Посмотреть мебель Лером. Пензенская мебель лером. amazon

Процедура под названием getprotobynumber позволяет процессу отыскать информацию о протоколе, используя в качестве параметра его номер:

указатель = getprotobynumber(номер-протокола)

И наконец, последовательный доступ к базе данных протоколов выполняется с помощью процедур getprotoent, setprotoent и endprotoent.

Получение информации о сетевых службах

В главах 12, "Передача пользовательских дейтаграмм (UDP)", и, 13, "Надежная потоковая транспортная служба (TCP)", речь шла о том что некоторые номера портов в протоколах UDP и TCP зарезервированы для стандартных служб. Например, порт номер 43 протокола TCP резервируется для службы who is (who is who, или кто есть кто). Служба who is позволяет клиенту, запущенному на одной машине, связываться с сервером, работающим на другой машине, и получать информацию о пользователе, который имеет учетную запись на машине сервера. В базе данных служб для службы who is определено официальное имя "whois", протокол TCP и номер порта — 43. Существует пять библиотечных процедур, с помощью которых можно получить информацию о службах и используемых ими портах протокола.

Процедура getservbyname позволяет определить по имени службы ее стандартный номер порта протокола:

указатель = getservbyname(адрес-имени, номер-протокола)

Параметр адрес-имени определяет адрес строки, содержащей имя службы, информацию о которой необходимо получить, а целочисленный параметр номер-протокола определяет протокол, с которым следует использовать эту службу. Как правило, выбор протоколов ограничивается протоколами TCP и UDP. Возвращаемое процедурой значение представляет собой указатель на структуру, где содержатся имя службы, список ее псевдонимов, идентификатор протокола, с которым используется служба, а также присвоенный этой службе целочисленный номер порта протокола.

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

указатель = getservbyport(номер-порта, номер-протокола)

Параметр номер-порта представляет собой присвоенный службе целочисленный номер порта протокола, а параметр номер-протокола определяет идентификатор протокола, с которым необходимо использовать службу. Как и в случае других баз данных, процесс может получить последовательный доступ к базе данных служб, используя для этого функции setservent, getservent и endservent.

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