| |
|
|
HINWEIS: Sie müssen sich registrieren, um eine Antwort zu erstellen. Um sich zu registrieren, klicken Sie hier . Die Registrierung ist KOSTENLOS!
|
| T H E M E N Ü B E R S I C H T |
| AndreasKrueger |
Gesendet - 18/06/2006 : 17:00:48 Nachdem ich mir eine ganze Weile die Zähne dran ausgebissen habe ist er nun fertig.
Ein (mittlerweile) kleines Perlscript zum generieren der Firewall.dat aus einem CSV-File.
#
#
# Perlscript zum Generieren der Firewall.dat aus einem CSV
# ACHTUNG in der CSV muss als erste Zeile das eigene Netz eingetragen werden ..
# z.B.: 15;192.168.0.0;255.255.255.0; um alle Services aus dem lokalem Subnetz zu erlauben
#
# Eine vorhanden Firewall.dat wird nicht mit verarbeitet !
#
# (c) 2006 by Andreas Krueger
# Kontakt : http://www.remote.dyndns.info/system/kontakt/
#
# Version : 1.02
#
# 1.02 : Zeilen die mit dem Doppelkreuz anfangen werden nicht verarbeitet.
# Informationen, in den Datenzeilen, ab einem Doppelkreuz werden ignoriert.
# Somit koennen auch Komentare im CSV erstellt werden
# 1.01 : Entfernen von Leerzeichen beim einlesen des CSV
# 1.00 : Initialversion
#
#
$count = 14; # Beginnt bei 14 weil pack für 10 und 13 0D 0A schreibt.
# Dies mag der Mercur jedoch nicht !!!!
open(FILE_IMP, "<Firewall.csv") || die "can't open: $!";
@lines_i = <FILE_IMP>;
close(FILE_IMP);
open(FILE_EXP, ">Firewall.dat") || die "can't open: $!";
foreach $i_line (@lines_i){
if($i_line !~ m/^#(.*)/){
chomp $i_line;
$i_line =~ s/\#(.*)//g;
@werte=split(/;/,$i_line);
$id = pack(I, $count);
$flags = $werte[0];
$flags =~ s/ //g;
$flags = pack(i, $flags);
$addr = $werte[1];
$addr =~ s/ //g;
$addr = pack(a16, $addr);
$mask = $werte[2];
$mask =~ s/ //g;
$mask = pack(a16, $mask);
$domain = pack(a128, $werte[3]);
print FILE_EXP "$id$flags$addr$mask$domain";
$count++;
}
}
close(FILE_EXP);
Ein Beispiel für das CSV :
#
# Firwallkonfig vom 22.06.2006 (Auszug als Beispiel)
#
#Flags;IP-Adress;Mask;Domain
15;192.168.0.0 ;255.255.255.0 ;#test
17;10.0.0.0 ;255.0.0.0 ;
17;12.5.170.96 ;255.255.255.248 ;
17;160.7.0.0 ;255.255.0.0 ;
17;165.166.0.0 ;255.255.0.0 ;# Info Avenue Internet Services
17;168.226.0.0 ;255.255.0.0 ;# Telefonica de Argentina
17;172.16.0.0 ;255.240.0.0 ;# Class B address space for private internets
17;193.93.140.0 ;255.255.252.0 ;
17;193.95.245.0 ;255.255.255.0 ;
17;194.3.40.0 ;255.255.255.0 ;
17;194.166.224.0 ;255.255.224.0 ;
17;196.36.0.0 ;255.254.0.0 ;# The Internet Solution Johannesburg
17;196.38.0.0 ;255.255.0.0 ;
7;0.0.0.0 ;255.255.255.255 ;
#
#
##############################################
# Beginn Comments ############################
##############################################
#
#
# Flags ######################################
# 7 15 17
#SMTP 0x0001 X X X
#POP3 0x0002 X
#IMAP4 0x0004 X
#CONTROL 0x0008 X
#DENY 0x0010 X
#DOMAIN 0x0020
#ADDRESS 0x0040
|
| 2 L E T Z T E A N T W O R T E N (Die neuste zuerst) |
| Webhopper |
Gesendet - 04/07/2006 : 06:16:42 Und hier schon wieder ein Update.
Die jetzt aktuelle Version lautet 1.0.3.1 und enthält nur die Änderung, dass Perl die Konfig jetzt im "binmode" händelt. Damit hat sich das Countergetrixe auch erledigt.
Wie einfach das Leben doch sein kann 
# perl -w
use strict;
#use warnings; # bleibt wegen der PACK-Meldungen bei leerem String aus
#
print <<EOM;
###############################################################################
# Perlscript zum Generieren der Firewall.dat aus einem CSV #
# #
# ACHTUNG in der CSV muss als erste Zeile das eigene Netz eingetragen werden. #
# z.B.: 15;192.168.0.0;255.255.255.0; um alle Services aus dem lokalem #
# Subnetz zu erlauben. #
# #
# Eine vorhanden Firewall.dat wird nicht mit verarbeitet ! #
# #
# (c) 2006 by Andreas Krueger #
# Kontakt : http://www.remote.dyndns.info/system/kontakt/ #
# #
###############################################################################
EOM
my $version = 1.0.3.1;
#
# 1.0.3.1 : Binmode für Filehandle aktiviert. Damit ist das "0D 0A" Problem behoben.
# 1.0.3.0 : Im Strict-Modus Arbeiten. Warnings bleiben wegen der PACK-Meldungen bei leeren Datenfeld aus.
# 1.0.2.0 : Zeilen die mit dem Doppelkreuz anfangen werden nicht verarbeitet.
# Informationen, in den Datenzeilen, ab einem Doppelkreuz werden ignoriert.
# Somit koennen auch Komentare im CSV erstellt werden
# 1.0.1.0 : Entfernen von Leerzeichen beim einlesen des CSV
# 1.0.0.0 : Initialversion
#
#
my $count = 14; # Beginnt bei 14 weil pack für 10 und 13 0D 0A schreibt.
# Dies mag der Mercur jedoch nicht !!!!
my $count = 0;
my $i_line;
my @werte;
my $id;
my $flags;
my $addr;
my $mask;
my $domain;
#
open(FILE_IMP, "<Firewall.csv") || die "Fehler : Kann firewall.csv nicht finden !";
my @lines_i = <FILE_IMP>;
close(FILE_IMP);
#
open(FILE_EXP, ">Firewall.dat") || die "Fehler : Kann firewall.dat nicht schreiben !";
binmode(FILE_EXP);
foreach $i_line (@lines_i){
if($i_line !~ m/^#(.*)/){
chomp $i_line;
$i_line =~ s/\#(.*)//g;
@werte=split(/;/,$i_line);
$id = pack("I", $count);
$flags = $werte[0];
$flags =~ s/ //g;
$flags = pack("i", $flags);
$addr = $werte[1];
$addr =~ s/ //g;
$addr = pack("a16", $addr);
$mask = $werte[2];
$mask =~ s/ //g;
$mask = pack("a16", $mask);
$domain = pack("a128", $werte[3]);
print FILE_EXP "$id$flags$addr$mask$domain";
$count++;
}
}
close(FILE_EXP);
print "done ...\n";
Das Gute am Internet ist, daß jeder mitmachen kann. Das Schlechte am Internet ist: Jeder Idiot macht mit...!
|
| Webhopper |
Gesendet - 25/06/2006 : 06:44:50 Sozusagen extra für "blub" hier nun die Version 1.0.3.0 als Perl-Script und Win-Exe /infos/atrium/ ....
# perl -w
use strict;
#use warnings; # bleibt wegen der PACK-Meldungen bei leerem String aus
#
print <<EOM;
###############################################################################
# Perlscript zum Generieren der Firewall.dat aus einem CSV #
# #
# ACHTUNG in der CSV muss als erste Zeile das eigene Netz eingetragen werden. #
# z.B.: 15;192.168.0.0;255.255.255.0; um alle Services aus dem lokalem #
# Subnetz zu erlauben. #
# #
# Eine vorhanden Firewall.dat wird nicht mit verarbeitet ! #
# #
# (c) 2006 by Andreas Krueger #
# Kontakt : http://www.remote.dyndns.info/system/kontakt/ #
# #
###############################################################################
EOM
my $version = 1.0.3.0;
#
# 1.0.3.0 : Im Strict-Modus Arbeiten. Warnings bleiben wegen der PACK-Meldungen bei leeren Datenfeld aus.
# 1.0.2.0 : Zeilen die mit dem Doppelkreuz anfangen werden nicht verarbeitet.
# Informationen, in den Datenzeilen, ab einem Doppelkreuz werden ignoriert.
# Somit koennen auch Komentare im CSV erstellt werden
# 1.0.1.0 : Entfernen von Leerzeichen beim einlesen des CSV
# 1.0.0.0 : Initialversion
#
#
my $count = 14; # Beginnt bei 14 weil pack für 10 und 13 0D 0A schreibt.
# Dies mag der Mercur jedoch nicht !!!!
my $i_line;
my @werte;
my $id;
my $flags;
my $addr;
my $mask;
my $domain;
#
open(FILE_IMP, "<Firewall.csv") || die "Fehler : Kann firewall.csv nicht finden !";
my @lines_i = <FILE_IMP>;
close(FILE_IMP);
#
open(FILE_EXP, ">Firewall.dat") || die "Fehler : Kann firewall.dat nicht schreiben !";
foreach $i_line (@lines_i){
if($i_line !~ m/^#(.*)/){
chomp $i_line;
$i_line =~ s/\#(.*)//g;
@werte=split(/;/,$i_line);
$id = pack("I", $count);
$flags = $werte[0];
$flags =~ s/ //g;
$flags = pack("i", $flags);
$addr = $werte[1];
$addr =~ s/ //g;
$addr = pack("a16", $addr);
$mask = $werte[2];
$mask =~ s/ //g;
$mask = pack("a16", $mask);
$domain = pack("a128", $werte[3]);
print FILE_EXP "$id$flags$addr$mask$domain";
$count++;
}
}
close(FILE_EXP);
print "done ...\n";
Nach dem Bereitstellen der neuen Firewall.dat unbedingt den SMTP-Dienst durchstarten.
Gruss, Andreas |
|
|
 |
 |
|
|
|
LTO Label, LTO Etiketten, 10 euro münzen, 2 euro münzen, andreas krueger, andreas krüger, BrowserCap, berlin, berlin wetter, cent münzen, counter, erfurt, euro gedenkmünzen, euro münzen, euro sondermünzen, euro tausch, euro tausch portal, euro umlaufmünzen, frankfurt main, haltestelle, krueger, krüger, mahlsdorf, muenzen, münzen, perl, proxy, rip, router, tausch portal, vatikan münzen, vdsl, zahlungsmittel, öpnv
|
|