ifconfig example
This commit is contained in:
		
							parent
							
								
									1e469bdded
								
							
						
					
					
						commit
						5882915d14
					
				
							
								
								
									
										75
									
								
								bindings/perl/examples/ifconfig.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										75
									
								
								bindings/perl/examples/ifconfig.pl
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,75 @@
 | 
			
		||||
#!/usr/bin/perl
 | 
			
		||||
 | 
			
		||||
use strict;
 | 
			
		||||
use Sigar;
 | 
			
		||||
 | 
			
		||||
my $sigar = new Sigar;
 | 
			
		||||
 | 
			
		||||
my $iflist = $sigar->net_interface_list;
 | 
			
		||||
 | 
			
		||||
for my $ifname (@$iflist) {
 | 
			
		||||
    my $ifconfig = $sigar->net_interface_config($ifname);
 | 
			
		||||
    my $flags = $ifconfig->flags;
 | 
			
		||||
 | 
			
		||||
    my $encap = ($flags & Sigar::IFF_LOOPBACK) ?
 | 
			
		||||
      "Local Loopback" : "Ethernet";
 | 
			
		||||
 | 
			
		||||
    my $hwaddr = $ifconfig->hwaddr;
 | 
			
		||||
    if ($hwaddr eq Sigar::NULL_HWADDR) {
 | 
			
		||||
        $hwaddr = "";
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        $hwaddr = " HWaddr " . $hwaddr;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    print $ifname . "\t" . "Link encap:" . $encap . $hwaddr . "\n";
 | 
			
		||||
 | 
			
		||||
    my $ptp = "";
 | 
			
		||||
    if ($flags & Sigar::IFF_POINTOPOINT) {
 | 
			
		||||
        $ptp = "  P-t-P:" . $ifconfig->destination;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    my $bcast = "";
 | 
			
		||||
    if ($flags & Sigar::IFF_BROADCAST) {
 | 
			
		||||
        $bcast = "  Bcast:" . $ifconfig->broadcast;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    print "\t" . "inet addr:" . $ifconfig->address .
 | 
			
		||||
      $ptp . $bcast . "  Mask:" . $ifconfig->netmask . "\n";
 | 
			
		||||
 | 
			
		||||
    print "\t" .
 | 
			
		||||
      Sigar::net_interface_flags_string($flags) .
 | 
			
		||||
      " MTU:" . $ifconfig->mtu .
 | 
			
		||||
      "  Metric:" . $ifconfig->metric . "\n";
 | 
			
		||||
 | 
			
		||||
    my $ifstat;
 | 
			
		||||
    eval {
 | 
			
		||||
        $ifstat = $sigar->net_interface_stat($ifname);
 | 
			
		||||
    } or next;
 | 
			
		||||
 | 
			
		||||
    print "\t" .
 | 
			
		||||
      "RX packets:" . $ifstat->rx_packets .
 | 
			
		||||
      " errors:" . $ifstat->rx_errors .
 | 
			
		||||
      " dropped:" . $ifstat->rx_dropped .
 | 
			
		||||
      " overruns:" . $ifstat->rx_overruns .
 | 
			
		||||
      " frame:" . $ifstat->rx_frame . "\n";
 | 
			
		||||
 | 
			
		||||
    print "\t" .
 | 
			
		||||
      "TX packets:" . $ifstat->tx_packets .
 | 
			
		||||
      " errors:" . $ifstat->tx_errors .
 | 
			
		||||
      " dropped:" . $ifstat->tx_dropped .
 | 
			
		||||
      " overruns:" . $ifstat->tx_overruns .
 | 
			
		||||
      " carrier:" . $ifstat->tx_carrier . "\n";
 | 
			
		||||
 | 
			
		||||
    print "\t" . "collisions:" . $ifstat->tx_collisions . "\n";
 | 
			
		||||
 | 
			
		||||
    my $rx_bytes = $ifstat->rx_bytes;
 | 
			
		||||
    my $tx_bytes = $ifstat->tx_bytes;
 | 
			
		||||
 | 
			
		||||
    print "\t" .
 | 
			
		||||
      "RX bytes:" . $rx_bytes .
 | 
			
		||||
        " (" . Sigar::format_size($rx_bytes) . ")" .
 | 
			
		||||
        "  " .
 | 
			
		||||
        "TX bytes:" . $tx_bytes .
 | 
			
		||||
        " (" . Sigar::format_size($tx_bytes) . ")" . "\n\n";
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user