---
name: "IO::Interface::Simple"
section: "3pm"
platform: "linux"
package: "libio-interface-perl"
version: "1.09-2+b5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/IO::Interface::Simple"
---

# IO::Interface::Simple(3pm)

Perl extension for access to network card configuration information

## NAME

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

## SYNOPSIS

```
 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;
  }
```

## DESCRIPTION

IO::Interface::Simple allows you to interrogate and change network interfaces. It has overlapping functionality with Net::Interface, but might compile and run on more platforms.

### Class Methods

- $interface = IO::Interface::Simple-\>new('eth0')

  Given an interface name, **new()** creates an interface object.

- @iflist = IO::Interface::Simple-\>interfaces;

  Returns a list of active interface objects.

- $interface = IO::Interface::Simple-\>new\_from\_address('192.168.0.1')

  Returns the interface object corresponding to the given address.

- $interface = IO::Interface::Simple-\>**new\_from\_index**(2)

  Returns the interface object corresponding to the given numeric index. This is only supported on BSD-ish platforms.

### Object Methods

- $name = $interface-\>name

  Get the name of the interface. The interface object is also overloaded so that if you use it in a string context it is the same as calling **name()**.

- $index = $interface-\>index

  Get the index of the interface. This is only supported on BSD-like platforms.

- $addr = $interface-\>address(\[$newaddr\])

  Get or set the interface's address.

- $addr = $interface-\>broadcast(\[$newaddr\])

  Get or set the interface's broadcast address.

- $addr = $interface-\>netmask(\[$newmask\])

  Get or set the interface's netmask.

- $addr = $interface-\>hwaddr(\[$newaddr\])

  Get or set the interface's hardware address.

- $addr = $interface-\>mtu(\[$newmtu\])

  Get or set the interface's MTU.

- $addr = $interface-\>metric(\[$newmetric\])

  Get or set the interface's metric.

- $flags = $interface-\>flags(\[$newflags\])

  Get or set the interface's flags. These can be ANDed with the IFF constants exported by IO::Interface or Net::Interface in order to interrogate the state and capabilities of the interface. However, it is probably more convenient to use the broken-out methods listed below.

- $flag = $interface-\>is\_running(\[$newflag\])

  - $flag = $interface-\>is\_broadcast(\[$newflag\])

  - $flag = $interface-\>is\_pt2pt(\[$newflag\])

  - $flag = $interface-\>is\_loopback(\[$newflag\])

  - $flag = $interface-\>is\_promiscuous(\[$newflag\])

  - $flag = $interface-\>is\_multicast(\[$newflag\])

  - $flag = $interface-\>is\_notrailers(\[$newflag\])

  - $flag = $interface-\>is\_noarp(\[$newflag\])

  Get or set the corresponding configuration parameters. Note that the operating system may not let you set some of these.

## AUTHOR

Lincoln D. Stein \<lincoln.stein@gmail.com\> Copyright 2001-2014, Lincoln D. Stein.

This library is distributed under the Perl Artistic License 2.0. Please see LICENSE for more information.

## SUPPORT

For feature requests, bug reports and code contributions, please use the GitHub repository at https://github.com/lstein/LibIO-Interface-Perl

## SEE ALSO

perl, IO::Socket, IO::Multicast), IO::Interface, Net::Interface
