Re: using a list
- From: corefile@xxxxxxxxx
- Date: 27 Feb 2007 15:40:20 -0800
On Feb 27, 2:36 pm, "John W. Krahn" <some...@xxxxxxxxxxx> wrote:
coref...@xxxxxxxxx wrote:
Trying to create a way to create a list of ip's port
-ip = 192.168.100.1 #first ip
-nip = 254 #number of ips
@allports = ("25", "110", "443", "179") #listening ports
-fip = 10.100.100.1 # static ip everything get forwarded to
-fport = 10001 # starting port that @allports will forward to running
on fip
What I need to do is have it output a list of ips, in this case I'm
starting with 192.168.100.1 and ending with 192.168.100.254. And for
each of those ip's I need to associate it with each of the ports in my
@allports list and out put that to a file. so I will look something
like:
192.168.100.1 25 maps to 10.100.100.1 20001
192.168.100.1 110 maps to 10.100.100.1 20002
192.168.100.1 443 maps to 10.100.100.1 20003
192.168.100.1 179 maps to 10.100.100.1 20004
192.168.100.2 25 maps to 10.100.100.1 20005
192.168.100.2 110 maps to 10.100.100.1 20006
192.168.100.2 443 maps to 10.100.100.1 20007
192.168.100.2 179 maps to 10.100.100.1 20008
192.168.100.3 25 maps to 10.100.100.1 20009
....
....
192.168.100.254 179 maps to 10.100.100.1 21016
This is what I have so far;
$ip = 192.168.100.1; #first ip
$nip = 254; #number of ips
@allports = ("25", "110", "443", "179"); #listening ports
$fip = 10.100.100.1; # static ip everything get forwarded to
$fport = 10001; # starting port that @allports will forward to running
on fip
$file = somefile.txt;
for ( 1..$n ) {
$ip =~ s/\.(\d+)$/.$_/;
$fport = $fport++;
open (FD, ">>", $file);
printf (FD "$ip maps to $fip $fport\n");
close (FD);
}
I can't figure out how to implement the @allports part. As I'm a total
noob this is probably not the most efficient way but as long as it
work thats fine for me.
#!/usr/bin/perl
use warnings;
use strict;
use Socket;
my $ip = unpack 'N', inet_aton '192.168.100.1'; #first ip
my $number = 254; #number of ips
my @allports = ( 25, 110, 443, 179 ); #listening ports
my $forward = '10.100.100.1'; # static ip everything get forwarded to
my $fport = 10001; # starting port that @allports will
# forward to running on fip
my $file = 'somefile.txt';
open my $FD, '>>', $file or die "Cannot open '$file' $!";
for ( 1 .. $number ) {
my $addr = inet_ntoa pack 'N', $ip;
for my $port ( @allports ) {
print $FD "$addr $port maps to $forward $fport\n";
++$fport;
}
++$ip;
}
close $FD;
__END__
John
--
Perl isn't a toolbox, but a small machine shop where you can special-order
certain sorts of tools at low cost and in short order. -- Larry Wall
perfect that worked great, one thing I forgot. I need to also have a
variable that takes the date command and makes a name for it.
I need to use the month/date/time/year + a incrementing number, so
building on what we have:
rule 022715362007_1 192.168.100.1 25 maps to 10.100.100.1 20001
rule 022715362007_2 192.168.100.1 110 maps to 10.100.100.1 20002
rule 022715362007_3 192.168.100.1 443 maps to 10.100.100.1 20003
rule 022715362007_4 192.168.100.1 179 maps to 10.100.100.1 20004
rule 022715362007_5 192.168.100.2 25 maps to 10.100.100.1 20005
rule 022715362007_6 192.168.100.2 110 maps to 10.100.100.1 20006
rule 022715362007_7 192.168.100.2 443 maps to 10.100.100.1 20007
rule 022715362007_8 192.168.100.2 179 maps to 10.100.100.1 20008
rule 022715362007_9 192.168.100.3 25 maps to 10.100.100.1 20009
.
- Follow-Ups:
- Re: using a list
- From: John W. Krahn
- Re: using a list
- From: DJ Stunks
- Re: using a list
- References:
- using a list
- From: corefile
- Re: using a list
- From: John W. Krahn
- using a list
- Prev by Date: Re: Choosing the path based on the system "uname" command
- Next by Date: Re: DocumentHTML ?
- Previous by thread: Re: using a list
- Next by thread: Re: using a list
- Index(es):