Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (45 – Общая рассылка , часть 14)

предыдущая часть ««»» следующая часть

$dstaddr = $socket->if_dstaddr ($interface_name)

Для двухточечных интерфейсов, работающих, например, по протоколу SLIP или РРР, возвращает IP-адрес удаленного конца соединения. Для интерфейсов, отличных от двухточечных, возвращает значение undef. Также данную конструкцию можно использовать в симбиозе с потоковым воспроизведением, чтобы, например, радио онлайн слушать .

$hwaddr = $socket->if_hwaddr ($interface_name)

Возвращает 6-байтовый аппаратный адрес Ethernet интерфейса в следующей форме aa:bb:cc:dd:ee:ff. Многие операционные системы не поддерживают основополагающий функциональный код ioctl () , и в этом случае метод if_hwaddr () возвращает undef. Этот метод возвращает также значение undef для интерфейсов, отличных от Ethernet.

При загрузке модуля IO::Interface с тегом flags импортируется набор констант, предназначенных для использования с двоичной маской, возвращенной методом if_flags (). Для определения того, поддерживает ли интерфейс конкретный атрибут, можно выполнить сравнение этих констант с флажками с помощью логического оператора “И”.

Ниже приведена функция, которая позволяет определить широковещательный адрес (адреса) конкретной подсети хоста во время выполнения. Эта функция принимает сокет в качестве параметра, вызывает метод if_list () для получения списка всех интерфейсов, запрашивает каждый из них по очереди для определения того, какой из них позволяет выполнять широковещательную рассылку, а затем вызывает метод if_broadcast () для получения самого адреса. Она возвращает список всех допустимых широковещательных адресов в виде четыре: чисел, разделенных точками.

sub get_broadcast__addr {
my $sock = shift; my @baddr;
for my $if ($sock->if_list) {
next unless $sock->if_flags($if) & IFF_BR0ADCAST;
push $baddr,$sock->if_broadcast($if);
}
return $baddr;
}

Еще одно средство модуля IO::Interface позволяет использовать его не в объектно-ориентированной, а функционально-ориентированной форме. После загрузки модуля IO::Interface с тегом импорта functions он импортирует в вызывающую процедуру только что описанные методы в виде функций. Это позволяет использовать вызовы этих функций с обычными дескрипторами сокетов, если в этом есть необходимость.



2015-06-17 20:02:59

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония