IO::Interface man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Interface(3)	      User Contributed Perl Documentation	  Interface(3)

NAME
       IO::Interface - Perl extension for access to network card configuration
       information

SYNOPSIS
	# ======================
	# the new, preferred API
	# ======================

	use IO::Interface::Simple;

	my $if1	  = IO::Interface::Simple->new('eth0');
	my $if2	  = IO::Interface::Simple->new_from_address('127.0.0.1');
	my $if3	  = IO::Interface::Simple->new_from_index(1);

	my @interfaces = IO::Interface::Simple->interfaces;

	for my $if (@interfaces) {
	   print "interface = $if\n";
	   print "addr =      ",$if->address,"\n",
		 "broadcast = ",$if->broadcast,"\n",
		 "netmask =   ",$if->netmask,"\n",
		 "dstaddr =   ",$if->dstaddr,"\n",
		 "hwaddr =    ",$if->hwaddr,"\n",
		 "mtu =	      ",$if->mtu,"\n",
		 "metric =    ",$if->metric,"\n",
		 "index =     ",$if->index,"\n";

	   print "is running\n"	    if $if->is_running;
	   print "is broadcast\n"   if $if->is_broadcast;
	   print "is p-to-p\n"	    if $if->is_pt2pt;
	   print "is loopback\n"    if $if->is_loopback;
	   print "is promiscuous\n" if $if->is_promiscuous;
	   print "is multicast\n"   if $if->is_multicast;
	   print "is notrailers\n"  if $if->is_notrailers;
	   print "is noarp\n"	    if $if->is_noarp;
	 }

	 # ===========
	 # the old API
	 # ===========

	 use IO::Socket;
	 use IO::Interface qw(:flags);

	 my $s = IO::Socket::INET->new(Proto => 'udp');
	 my @interfaces = $s->if_list;

	 for my $if (@interfaces) {
	   print "interface = $if\n";
	   my $flags = $s->if_flags($if);
	   print "addr =      ",$s->if_addr($if),"\n",
		 "broadcast = ",$s->if_broadcast($if),"\n",
		 "netmask =   ",$s->if_netmask($if),"\n",
		 "dstaddr =   ",$s->if_dstaddr($if),"\n",
		 "hwaddr =    ",$s->if_hwaddr($if),"\n";

	   print "is running\n"	    if $flags & IFF_RUNNING;
	   print "is broadcast\n"   if $flags & IFF_BROADCAST;
	   print "is p-to-p\n"	    if $flags & IFF_POINTOPOINT;
	   print "is loopback\n"    if $flags & IFF_LOOPBACK;
	   print "is promiscuous\n" if $flags & IFF_PROMISC;
	   print "is multicast\n"   if $flags & IFF_MULTICAST;
	   print "is notrailers\n"  if $flags & IFF_NOTRAILERS;
	   print "is noarp\n"	    if $flags & IFF_NOARP;
	 }

	 my $interface = $s->addr_to_interface('127.0.0.1');

DESCRIPTION
       IO::Interface adds methods to IO::Socket objects that allows them to be
       used to retrieve and change information about the network interfaces on
       your system.  In addition to the object-oriented access methods, you
       can use a function-oriented style.

       THIS API IS DEPRECATED. Please see IO::Interface::Simple for the
       preferred way to get and set interface configuration information.

   Creating a Socket to Access Interface Information
       You must create a socket before you can access interface information.
       The socket does not have to be connected to a remote site, or even used
       for communication.  The simplest procedure is to create a UDP protocol
       socket:

	 my $s = IO::Socket::INET->new(Proto => 'udp');

       The various IO::Interface functions will now be available as methods on
       this socket.

   Methods
       @iflist = $s->if_list
	   The if_list() method will return a list of active interface names,
	   for example "eth0" or "tu0".	 If no interfaces are configured and
	   running, returns an empty list.

       $addr = $s->if_addr($ifname [,$newaddr])
	   if_addr() gets or sets the interface address.  Call with the
	   interface name to retrieve the address (in dotted decimal format).
	   Call with a new address to set the interface.  In the latter case,
	   the routine will return a true value if the operation was
	   successful.

	     my $oldaddr = $s->if_addr('eth0');
	     $s->if_addr('eth0','192.168.8.10') || die "couldn't set address: $!";

	   Special case: the address of the pseudo-device "any" will return
	   the IP address "0.0.0.0", which corresponds to the INADDR_ANY
	   constant.

       $broadcast = $s->if_broadcast($ifname [,$newbroadcast]
	   Get or set the interface broadcast address.	If the interface does
	   not have a broadcast address, returns undef.

       $mask = $s->if_netmask($ifname [,$newmask])
	   Get or set the interface netmask.

       $dstaddr = $s->if_dstaddr($ifname [,$newdest])
	   Get or set the destination address for point-to-point interfaces.

       $hwaddr = $s->if_hwaddr($ifname [,$newhwaddr])
	   Get or set the hardware address for the interface. Currently only
	   ethernet addresses in the form "00:60:2D:2D:51:70" are accepted.

       $flags = $s->if_flags($ifname [,$newflags])
	   Get or set the flags for the interface.  The flags are a bitmask
	   formed from a series of constants.  See "Exportable constants"
	   below.

       $ifname = $s->addr_to_interface($ifaddr)
	   Given an interface address in dotted form, returns the name of the
	   interface associated with it.  Special case: the INADDR_ANY
	   address, 0.0.0.0 will return a pseudo-interface name of "any".

   EXPORT
       IO::Interface exports nothing by default.  However, you can import the
       following symbol groups into your namespace:

	 :functions   Function-oriented interface (see below)
	 :flags	      Flag constants (see below)
	 :all	      All of the above

   Function-Oriented Interface
       By importing the ":functions" set, you can access IO::Interface in a
       function-oriented manner.  This imports all the methods described above
       into your namespace.  Example:

	 use IO::Socket;
	 use IO::Interface ':functions';

	 my $sock = IO::Socket::INET->new(Proto=>'udp');
	 my @interfaces = if_list($sock);
	 print "address = ",if_addr($sock,$interfaces[0]);

   Exportable constants
       The ":flags" constant imports the following constants for use with the
       flags returned by if_flags():

	 IFF_ALLMULTI
	 IFF_AUTOMEDIA
	 IFF_BROADCAST
	 IFF_DEBUG
	 IFF_LOOPBACK
	 IFF_MASTER
	 IFF_MULTICAST
	 IFF_NOARP
	 IFF_NOTRAILERS
	 IFF_POINTOPOINT
	 IFF_PORTSEL
	 IFF_PROMISC
	 IFF_RUNNING
	 IFF_SLAVE
	 IFF_UP

       This example determines whether interface 'tu0' supports multicasting:

	 use IO::Socket;
	 use IO::Interface ':flags';
	 my $sock = IO::Socket::INET->new(Proto=>'udp');
	 print "can multicast!\n" if $sock->if_flags & IFF_MULTICAST.

AUTHOR
       Lincoln Stein <lstein@cshl.org>

       This module is distributed under the same license as Perl itself.

SEE ALSO
       perl(1), IO::Socket(3), IO::Multicast(3), IO::Interface::Simple

perl v5.14.0			  2008-06-06			  Interface(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net