Script FreeIP

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von shadeghost, 04.03.2008.

  1. #1 shadeghost, 04.03.2008
    shadeghost

    shadeghost Grünschnabel

    Dabei seit:
    04.03.2008
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo zusammen,

    Ich möchte ein shell-script schreiben, welches mir in einem IP-Bereich alle IP-Adressen checkt, ob sie erreichbar sind. Das ganze soll in eine Datei geschrieben werden und später im Browser mit html angezeigt werden. Je nachdem ob der Host erreichbar ist oder nicht, wird die Shell-Ausgabe im HTML grün oder rot angezeigt.

    Ich habe ein bisschen rum probiert. Mir fehlt es aber an dem nötigen Know-How:

    #!/bin/bash

    # Script zum Prüfen welche IPs im Netz gebraucht werden und elche frei sind
    # Autor: Remo Fritschi

    echo "<html><head></head><body>" > FreeIP_Auswertung.html

    for ((zahl=1;zahl<10;zahl++)) do
    ping -c 1 -t 3 192.168.1.$zahl | grep "packet loss" > FreeIP_temp
    export wert="cat FreeIP_temp"

    if [ $wert = "1 packets transmitted, 0 packets received, 100% packet loss" ]; then
    echo "<font color='green'>192.168.1.$zahl: is free</font><br>" >> FreeIP_Auswertung.html
    else
    echo "<font color='red'>192.168.1.$zahl: blocked</font><br>" >> FreeIP_Auswertung.html
    fi
    echo "" >> FreeIP_Auswertung.txt
    done

    echo "</body></html>" >> FreeIP_Auswertung.html

    Bei diesem Script funktioniert die If-Abfrage nicht korrekt. Wie kann ich das Ping-Ergebnis eleganter ermitteln, damit ich es im If vergleichen kann? Ist es möglich das der Ping-Befehl nur true oder false ausgibt?
    Ich denke da so an awk oder sed...
    Könnt ihr mir weiterhelfen?

    Vielen Dank zum voraus!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 04.03.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Nur ein paar Tipps.
    Du kannst mit ping auf den Returnwert testen.
    $?= 0 -> erfolgreich
    $? >0 Fehler
    Damit sparst du dir das grep
    Code:
    ping -c1 -q $IP 2>& 1>/dev/null;
    WERT=$?;
    
    if [ $WERT -eq 0 ];
    then
    echo "$IP erfolgreich";
    else
    ...
    fi
    
    Um die Ausgabe eines Command in eine Var zu speichern:
    Code:
    C=$(COMMAND);
    # oder veraltet mit Backtick
    C=`COMMAND`
    
    Gruß Wolfgang
     
  4. #3 aspire_5652, 04.03.2008
    Zuletzt bearbeitet: 04.03.2008
    aspire_5652

    aspire_5652 Tripel-As

    Dabei seit:
    02.01.2008
    Beiträge:
    198
    Zustimmungen:
    0
    Das geht:

    Code:
    #!/bin/bash
    
    HTML_FILE="./FreeIP_Auswertung.html"
    
    echo "<html><head></head><body>" > ${HTML_FILE}
    
    i=1
    while [ ${i} -le 255 ]
    do
    	IP="10.0.0.$i"
    	echo $IP
    	RETURN=$(ping -c 1 -t 3 ${IP} > /dev/null; echo $?)
    	if [ ${RETURN} = 1 ]
    	then
    		echo "<font color='green'>${IP}: is free</font><br>" >> ${HTML_FILE}
    	else
    		echo "<font color='red'>${IP}: blocked</font><br>" >> ${HTML_FILE}
    	fi
    	i=$(expr ${i} + 1)
    done
    
    echo "</body></html>" >> ${HTML_FILE}
    
     
  5. #4 shadeghost, 04.03.2008
    shadeghost

    shadeghost Grünschnabel

    Dabei seit:
    04.03.2008
    Beiträge:
    2
    Zustimmungen:
    0
    Vielen Dank für eure schnelle Hilfe!
    Ich habs nun mit folgendem Script hinbekommen:
    Code:
    #!/bin/bash
    
    echo "<html><head></head><body>" > FreeIP_Auswertung.html;
    
    for ((zahl=1;zahl<255;zahl++)) do
            ping -c1 -t3 -q 192.168.1.$zahl 2>& 1>/dev/null;
            WERT=$?;
            if [ $WERT -eq 0 ]; then
                    echo "<font color='red'>192.168.1.$zahl: is blocked</font><br>" >> FreeIP_Auswertung.html
            else
                    echo "<font color='green'>192.168.1.$zahl: is free</font><br>" >> FreeIP_Auswertung.html
            fi
    done
    
    echo "</body></html>" >> FreeIP_Auswertung.html
    
     
  6. #5 Ale-x, 04.03.2008
    Zuletzt bearbeitet: 04.03.2008
    Ale-x

    Ale-x bash lehrling

    Dabei seit:
    13.04.2007
    Beiträge:
    109
    Zustimmungen:
    0
    Ort:
    Osnabrück
    dauert das nicht etwas zu lange? nur ne idee aber wie wär es so?
    Code:
    #!/bin/bash
    
    echo "<html><head></head><body>" > FreeIP_Auswertung.html
    
    nmap -sP 192.168.0.1-255 | grep "appears" | awk '{print $2}' | while read line ;do
    echo "<font color='red'>$line: is blocked</font><br>" >> FreeIP_Auswertung.html
    
    done
    echo "</body></html>" >> FreeIP_Auswertung.html
    
    
     
  7. #6 Always-Godlike, 04.03.2008
    Always-Godlike

    Always-Godlike Das Freak

    Dabei seit:
    31.12.2006
    Beiträge:
    939
    Zustimmungen:
    0
    Ort:
    Saarland
    Hab letztens auch so en nettes Script geschrieben, um zu überprüfen welche PC's online sind. An dem siehste auch, wie langsam so etwas mit Ping ist ^^ Der Vorschlag von Ale-x läuft da wohl schneller.
    Code:
    #!/bin/bash
    
    for i in $(cat ./iplist)
    do
    	suc=$(ping $i -c 1 -q -w 1 | grep received | cut -d " " -f4)
    	if [ "$suc" = "1" ]
    		then
    		echo -e "$i		[\033[1;32monline\033[1;0m]"
    		:
    	else
    		echo -e "$i		[\033[1;31moffline\033[1;0m]"
    	fi
    done
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Script FreeIP

Die Seite wird geladen...

Script FreeIP - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. Bashscript aus Debian6 läuft nicht auf Debian7

    Bashscript aus Debian6 läuft nicht auf Debian7: Hallo an alle, nachdem ich ein Skript von squeeze auf wheezy kopiert habe und ausführte, erschienen gleich wilde Fehlermeldungen, nach denen ich...
  3. Shell Script Problem

    Shell Script Problem: Hallo zusammen, ich arbeite momentan mit einem Plagiat Tool, die ich über Git Bash ausführe. Es wird im Endeffekt ein Link generiert, die ich...
  4. Externes Programm mit Script ausführen?

    Externes Programm mit Script ausführen?: Hallo, ich würde gern ein Script zum klonen von festplatten schreiben z.B. mit dem Programm Mondo Rescue. Ist es möglich externen Programmen...
  5. sh Script zum Autostart

    sh Script zum Autostart: hallo liebe Mitglieder, wenn ich unter Linux eins meiner Shell Skripte im Autostart haben will nutze ich immer die @reboot Funktion im crontab....