Hallo List, irgendwie bin ich mal wieder am Ende mit meinem "Latein" und hoffe auf die Skriptgurus *hint* *hint* David :D ich habe eine Liste von IP Adressen die etwa wie folgt aussieht <LISTE> [...]belangloser Text[...] Beschreibung:123.123.123.0-123.123.123.255 Andere Beschreibung:222.222.0.0-222.222.255.255 nocheine:124.0.0.0-124.0.0.0 nocheine:122.1.1.0-122.1.1.127 </LISTE> Anmerkung zur den letzten: die fallen leider auch real aus dem Rahmen. diese IP Adressen sollen nun der Grundstock für eine dynamische ipchains Blacklist sein. D.h. ich mache ersteinmal folgende: cat <textfile> | awk 'BEGIN { FS=":" } /[0-9]-[0-9]/ { print $2 }' <Ausgabe> 123.123.123.0-123.123.123.255 222.222.0.0-222.222.255.255 <Ausgabe> jetzt habe ich zumindest mal eine Liste aller IPs. Um das ganze jetzt aber ordentlich in IP und Netmask zu unterteilen bräuchte ich etwas das mir z.B. alle Nullen aus dem ersten Teil summiert. Evtl. auch schaut ob an der Stelle im 2. Teil eine 255 oder etwas anderes steht und mir daraus dann eine korrekte Netmask berechnet. Ich bin mir eigentlich ziemlich sicher das ich das nicht in C programmieren muss, AWK sollte das doch können oder? #!/bin/bash awk 'BEGIN {FS=":"} /\.[0-9]-[0-9]/ { print $2 } ' | awk 'BEGIN {FS="-" printf("#\n# Ipchains -- Blacklist\n#\n"); } { printf "/sbin/ipchains -A input -j DENY -l -p all\ -s %s/24 -d 192.168.10.10\n", $1 } ' # EOF Bis auf die Tatsache das das irgendwie unschön aussieht (2*awk) und keine ordentliche Netmask berechnet wird funktioniert es. <Ausgabe> /sbin/ipchains -A input -j DENY -l -p all -s 123.123.123.0/24 -d 192.168.10.10 /sbin/ipchains -A input -j DENY -l -p all -s 222.222.0.0/24 -d 192.168.10.10 </Ausgabe> Wie man sieht nicht wirklich schön und auch nicht sehr effizient. Momentan werden zwar eher zu wenig als zu viele Adressen geblockt aber ich hätte das doch gerne *genau* Greetings Daniel PS.: Sorry für den langen Post && David bitte nicht lachen.... -- ... yesterday I met the woman I couldn't drink pretty ...