Plz send me in zip
On Jul 15, 2015 8:11 AM, "Matthew Harris" <[email protected]> wrote:

> Oh wow, yeah any time were pulling out bitwise operators I'm using a CPAN
> module. See http://search.cpan.org/~muir/Net-Netmask-1.9015/Netmask.pod
>
> But congrats and keep up the learning!
>
> Matthew Harris | Automation Engineer​ | IPsoft, Austin
>
> Phone: 888.IPSOFT8 | Direct: 512-354-8116 | [email protected]
>
> ________________________________________
> From: [email protected] <
> [email protected]> on behalf of ToddAndMargo
> <[email protected]>
> Sent: Tuesday, July 14, 2015 2:31 PM
> To: [email protected]
> Subject: Re: Just wrote my first Perl script
>
> On 07/14/2015 09:04 AM, Matthew Harris wrote:
> > Nice to see that people are still learning Perl! I'll see some code!
>
> Hi Matthew,
> Seems to me like you can do anything in Perl.  It is sweet.
> Here is the code.
>
> I use this for system administration (a lot of us here),
> specifically yo set up my firewall.
>
> You will love the equation to go from Short Mask to
> Hex Mask.  A guy on the Perl group helped me with
> it and I have no idea how he figured it out.
>
>       $HexMask = ~((1 << (32 - $ShortMask)) - 1);
>
> Wow.  Took me forever to understand what he did!
>
> -T
>
> GetNetwork.pl
> <code>
> #!/usr/bin/perl
>
> # Given the ip and the short mask in the form of
> # www.xxx.yyy.zz and xx, e.g. 192.168.244.134 26
> # calculate the network
>
> use strict;
> use warnings; # You'll get little help here without these
> my (  $ScriptName, $ip, $ShortMask, $HexIP, $HexMask,
>       $NetworkDots, $num_args, $Network );
>
> ( $ScriptName = $0 ) =~ s{.*/}{};
>
> # quit unless we have the correct number of command-line args
> $num_args = $#ARGV + 1;
> if ($num_args != 2) {
>      print "You forgot something\n";
>      print "Usage: $ScriptName  IP  ShortMask\n\n";
>      exit 1;
> }
>
>
> $ip=$ARGV[0];
> $ShortMask=$ARGV[1];
>
>
> if ($ip =~ m/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ ) {
>     # print "$1 $2 $3 $4\n";
>     if ($1 > 255 || $2 > 255 || $3 > 255 || $4 > 255 ) {
>        print "Invalid ip <$ip>\n";
>        exit 1;
>     }
>     $HexIP = ($1 << 24) + ($2 << 16) + ($3 << 8) + $4;
> }
>
>
> $HexMask = ~((1 << (32 - $ShortMask)) - 1);
> $Network = $HexIP & $HexMask;   # & is a bit wise AND
>
> $NetworkDots= ($Network >> 24)
>                . "." .
>                (($Network >> 16 ) & 0xFF)
>                . "." .
>                (($Network >> 8 ) & 0xFF )
>                . "." .
>                ($Network & 0xFF );
>
> # print "Your network for ip=$ip and Netmask=$ShortMask is $NetworkDots\n";
> print "$NetworkDots\n";
> </code>

Reply via email to