John W. Krahn am Sonntag, 14. Mai 2006 01.03:
> D. Bolliger wrote:
> > John W. Krahn am Sonntag, 14. Mai 2006 00.11:
> >>Or you could "cheat" and let Getopt::Long parse it for you:
> >>
> >>$ perl -MGetopt::Long -MData::Dumper -e'
> >>$_ = q[iptables -A INPUT -p tcp -s 123.45.678.90 --dport 22 -j ACCEPT];
> >>my %h;
> >>{   local @ARGV = split;
> >>    GetOptions( \%h, "A=s", "p=s", "s=s", "dport=i", "j=s" );
> >>    }
> >>print Dumper \%h;
> >>'
> >>$VAR1 = {
> >>          'A' => 'INPUT',
> >>          'p' => 'tcp',
> >>          's' => '123.45.678.90',
> >>          'j' => 'ACCEPT',
> >>          'dport' => 22
> >>        };
> >
> > The disadvantage may be that it accepts wrong syntax like -ptcp (see
> > remark above), but the idea is great!
>
> $ perl -MGetopt::Long -MData::Dumper -e'
> $_ = q[iptables -A INPUT -ptcp -s 123.45.678.90 --dport 22 -j ACCEPT];
> my %h;
> Getopt::Long::Configure( "bundling_override" );
> {   local @ARGV = split;
>     GetOptions( \%h, "A=s", "p=s", "s=s", "dport=i", "j=s" );
>     }
> print Dumper \%h;
> '
> $VAR1 = {
>           'A' => 'INPUT',
>           'p' => 'tcp',
>           's' => '123.45.678.90',
>           'j' => 'ACCEPT',
>           'dport' => 22
>         };

Hello John, 

I seem to have been unclear, sorry for that.
With "it accepts wrong syntax" I meant wrong syntax for iptables:

# iptables -A INPUT -p tcp -s 192.158.1.10  --dport 22 -j ACCEPT
# iptables -A INPUT -ptcp  -s 192.158.1.10  --dport 22 -j ACCEPT
iptables v1.3.4: unknown protocol `-ptcp' specified
Try `iptables -h' or 'iptables --help' for more information.

I may be missing something, of course.

Dani

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to