Veröffentlicht 10. Februar 201213 j Hallo ich brauch eure Hilfe!!!! Ich möchte bei diesem Skript erreichen dass nur die IP-Adresse(egal welche) von dem Skript angenommen wird. Ansonsten soll eine Fehlermeldung erscheinen. #!/bin/bash #Pfad für temporäre Datei file=/scripte/scan.log datum=`date +%x` zeit=`date +%k:%M` clear echo "Bitte geben Sie das Subnetz ein, das gescannt werden soll?" read IP #An dieser Stelle komme ich einfach nich weiter!! [B]echo $IP | grep -E [0-9,"/","."]+| grep -E [^A-Za-z] [/B] exit echo "Starte nmap für $IP..." echo "Folgende Hosts sind online:" echo "-------------------------------" >> $file echo "Scan ausgeführt am $datum um $zeit für Subnetz: $IP" >> $file nmap -sP $IP |grep "is up" |cut -d " " -f 2 |tee -a $file echo " " >> $file echo " " >> $file count=`cat /scripte/scan.log |grep Scan|wc -l` echo "Es wurde bisher $count"mal"gescannt..." exit [/code] Danke schonmal
11. Februar 201213 j #!/bin/bash echo "Eingabe" read IP if [[ "$IP" =~ ^[0-9]{1,3}[.]{1}[0-9]{1,3}[.]{1}[0-9]{1,3}[.]{1}[0-9]{1,3}$ ]] then echo "IP passt" else echo "Keine IP" exit 1 fi
11. Februar 201213 j Der Reguläre Ausdruck ist komplett falsch! Oder kennst Du eine IP 999.999.999.999?
11. Februar 201213 j [...] die IP-Adresse(egal welche) [...] :floet: Mir reicht das in meinen Skripten, weil ich nur Schreibfehler erkennen möchte, aber an sich hast du Recht. Folgende RegEx sollte auch den Adressraum abdecken: ^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.