dwww Home | Show directory contents | Find package

#!/usr/bin/perl

use Net::IP;
use strict;

print "+----------------------------------------------+
| addrs   bits   pref   class  mask            |
+----------------------------------------------+
";

my ($ip,$size,$class,$bits,$len);

my $ip = new Net::IP('0');

for my $len (reverse (0..32))
{

        $ip->set("0.0.0.0/$len");

        $size = $ip->size();
        
        if ($size >=1048576) # 1024*1024
        {
                $size /= 1048576;
                $size .= 'M';
        }
        elsif ($size >= 1024)
        {
                $size /= 1024;
                $size .= 'K';
        };              
        
        $len = $ip->prefixlen();
        $bits = 32 - $len;
        
        if ($bits >= 24)
        {
                $class = 2**($bits-24);
                $class.= 'A';
        }
        elsif ($bits >= 16)
        {
                $class = 2**($bits-16);
                $class.= 'B';
        }       
        elsif ($bits >= 8)
        {
                $class = 2**($bits-8);
                $class.= 'C';
        }       

        printf ("| %5s %6s %6s %7s  %-15s |\n",
                $size,$bits,'/'.$len,$class,$ip->mask());
        

};

print "+----------------------------------------------+\n";

Generated by dwww version 1.15 on Fri May 24 02:31:45 CEST 2024.