/usr/bin/ipv4calc is in libnetwork-ipv4addr-perl 0.10.ds-2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | #!/usr/bin/perl
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
if 0; # not running under some shell
use strict;
use Net::IPv4Addr qw (:all);
use Getopt::Long;
my %opts = ();
sub usage() {
die <<EOU;
usage: ipv4calc [--network | --broadcast | --netmask |
--cidr | --address ] addr
EOU
}
GetOptions( \%opts, "network", "broadcast", "netmask", "cidr", "address")
or usage;
my $str = shift;
$str or usage;
my ($ip,$cidr) = ipv4_parse($str);
my ($network,$msk) = ipv4_network($ip,$cidr);
my ($broadcast) = ipv4_broadcast($ip,$cidr);
if ( $opts{network}) {
print $network,"\n";
} elsif ($opts{broadcast}) {
print $broadcast,"\n";
} elsif ( $opts{netmask} ) {
print ipv4_cidr2msk( $msk ), "\n";
} elsif ( $opts{address} ) {
print $ip, "\n";
} elsif ( $opts{cidr} ) {
print $msk, "\n";
} else {
print <<EOF;
Host: $ip
Network: $network/$msk
Broadcast: $broadcast
EOF
}
1;
__END__
# Below is the stub of documentation for your module. You better edit it!
=pod
=head1 NAME
ipv4calc - Calculates IPv4 elements from an address.
=head1 SYNOPSIS
ipv4calc [ --network | --broadcast | --netmask |
--address | --cidr ] addr
=head1 DESCRIPTION
If an option is specified B<ipv4calc> calculates the requested element
from the address and prints it on stdout.
If multiple options are specified, only the first one is printed.
If no options are specified, the program prints the host part of the
address, the network and the broadcast address as deduced from the
given address.
If address doesn't contains a netmask or mask length, the default
one is assumed.
=head1 AUTHOR
Francis J. Lacoste <francis.lacoste@iNsu.COM>
=head1 COPYRIGHT
Copyright (c) 1999,2000 iNsu Innovations Inc.
All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms as perl itself.
=head1 SEE ALSO
Network::IPv4Addr(3).
=cut
|