Функции perl для получения информации о сети

Функции perl для получения информации о сети

Функции: endhostent, endnetent, endprotoent, endservent, gethostbyaddr, gethostbyname, gethostent, getnetbyaddr, getnetbyname, getnetent, getprotobyname, getprotobynumber, getprotoent, getservbyname, getservbyport, getservent, sethostent, setnetent, setprotoent, setservent. Примеры кода.

 

Функции для получения информации о хостах

endhostent

Закрытие файла хостов после завершения обработки его содержимого.

 

gethostbyaddr

Возвращает описание интернет-узла по заданному сетевому адресу.

ADDR — это упакованный бинарный сетевой адрес, ADDRTYPE — тип, семейство протоколов.

Информацию о хосте получает от сервера имен или из файла /etc/hosts .

Формат вызова:

Просматриваем /etc/hosts на указанном сервере:

Пример:

Вывод:

 

gethostbyname

Возвращает описание интернет-узла по указанному имени хоста.

Возвращается информация, полученная от сервера имен или произвольные поля из строки в /etc/hosts . Если нет доступа к серверу имен, то будет просматриваться локальный /etc/hosts .

Одному имени хоста может соответствовать несколько ip-адресов. Особенно часто это встречается в высоконагруженных проектах, где происходит распределение нагрузки по разным серверам.

Формат возвращаемых данных такой же, как для функции gethostbyaddr().

Пример:

Вывод:

 

gethostent

Функция осуществляет итерацию по файлу /etc/hosts и возвращает по одной записи. Данные возвращаются в том же формате, что и для функции gethostbyaddr().

Функция gethostent() может быть не реализована для некоторых видов операционных систем, так что, скрипты, которые содержат ее — не могут считаться переносимыми.

Пример:

Вывод:

 

sethostent

Позиционирование файла хостов на первую запись. Последующий вызов функции gethostent() начинает его обработку с первой записи.

Если STAYOPEN указан как true, то файл не будет закрываться между вызовами gethostbyname() и
gethostbyaddr().

 

Функции для получения информации о сетях

endnetent

Закрытие файла сетей после завершения обработки его содержимого.

 

getnetbyaddr

Получение записи из файла сетей о сети с заданным адресом и типом.

В скалярном контексте функция вернет только сетевое имя.

Пример:

Вывод:

 

getnetbyname

Получение записи из файла сетей о сети с заданным сетевым именем.

Пример:

Вывод:

 

getnetent

Возвращает следующую запись файла сетей при очередном вызове.

Функция выполняет итерацию по строкам файла /etc/networks. В списковом контексте возвращает значения:

В скалярном контексте возвращает только имя сети.

Пример:

где $name — официальное имя сети, $addrtype — тип сетевого адреса, $net — номер сети в сетевом порядке байтов.

Вывод:

 

setnetent

Позиционирование файла сетей на первую запись. Последующий вызов функции getnetent() начинает его обработку с первой записи.

Если STAYOPEN задан true, то файл не будет закрываться между вызовами getnetbyname() и getnetbyaddr().

 

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

endprotoent

Закрытие файла протоколов после завершения обработки его содержимого.

 

getprotobyname

Получение записи из файла протоколов /etc/protocols о протоколе с заданным именем.

В скалярном контексте возвращает только номер протокола. Списковый контекст:

Пример:

Вывод:

 

getprotobynumber

Получение записи из файла протоколов /etc/protocols о протоколе с заданным номером. В списковом контексте функция возвращает:

В скалярном контексте функция вернет только название протокола.

Вывод:

 

getprotoent

Возвращает следующую запись файла протоколов при очередном вызове.

Функция осуществляет итерацию файла /etc/protocols . В списковом контексте возвращает:

В скалярном контексте возвращает только имя протокола.

Пример:

Вывод:

 

setprotoent

Позиционирование файла протоколов на первую запись. Последующий вызов функции getprotoent() начинает его обработку с первой записи.

Если STAYOPEN равен true, то файл не будет закрываться между вызовами getprotobyname() и
getprotobyaddr().

 

Функции для получения информации о сервисах

endservent

Закрытие файла сервисов после завершения обработки его содержимого.

 

getservbyname

Получение записи из файла /etc/services о сервисе с заданным именем и протоколом.

В списковом контексте функция возвращает:

В скалярном контексте getservbyname() вернет только номер порта.

Пример:

Вывод:

 

getservbyport

Получение записи из файла /etc/services о сервисе с заданным номером порта и протоколом. В скалярном контексте getservbyport() вернет только имя сервиса. В списковом контексте возвращает:

Пример:

Вывод:

 

getservent

Возвращает следующую запись файла сервисов /etc/services при очередном вызове.

В списковом контексте функция getservent() возвращает:

В скалярном контексте getservent() будет возвращать только имя сервиса.

Пример:

Вывод:

 

setservent

Позиционирование файла сервисов на первую запись. Последующий вызов функции getservent() начинает его обработку с первой записи.

Если STAYOPEN равен true, то файл не будет закрываться между вызовами getservbyname() и getservbyaddr().

 

Полезные ссылки

opennet.ru: Библиотечные вызовы getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent

opennet.ru: Библиотечные вызовы getservent, getservbyname, getservbyport, setservent, endservent

opennet.ru: Библиотечные вызовы gethostbyname, gethostbyaddr, sethostent, endhostent, herror, hstrerror

opennet.ru: Библиотечные вызовы getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent