Для двухточечных интерфейсов, работающих, например, по протоколу 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 он импортирует в вызывающую процедуру только что описанные методы в виде функций. Это позволяет использовать вызовы этих функций с обычными дескрипторами сокетов, если в этом есть необходимость.