Rechnernetzwerke, Prof. Euler, WS05/06 Musterlösung Testat 1 18.01.2006 JAVA: Ping.java: import java.io.IOException; import java.util.Enumeration; import java.util.Vector; public class ping { public static void main(String args[]) { Vector adressen = new Vector(); adressen.addElement(new String("www.web.de")); adressen.addElement(new String("127.0.0.1")); adressen.addElement(new String("www.spiegel.de")); adressen.addElement(new String("www.gibtsnicht.cc")); Enumeration liste = adressen.elements(); while (liste.hasMoreElements()) { String cmd = new String("ping "+ (String) liste.nextElement()); try { System.out.print(cmd+"\t\t"); Process p = Runtime.getRuntime().exec(cmd); try { /* Warte auf das Ende des ping-Befehls */ p.waitFor(); } catch (InterruptedException e){ } if (p.exitValue() > 0 ) System.out.println("Fehler"); else System.out.println("Erfolg"); } catch (IOException e) { } } } } C++: Ping.c: #include <stdlib.h> #include <stdio.h> #include <string.h> void main(int argc, char* argv[]) { FILE *fp; char *befehl="ping -n 1 "; char *rechner[] = { "www.t-online.de", "www.gibtsnicht.nix", "128.30.52.25", "www.vw.com" }; char *nach = " > tmp.log"; char aufruf[200]; char zeile[200]; int i; for( i=0; i<(sizeof rechner) / (sizeof (char*)); i++ ) { printf("%-20s", rechner[i] ); sprintf(aufruf, "%s%s%s", befehl, rechner[i], nach ); system( aufruf ); GESCHLOSSENE GESELLSCHAFT Für die Geschlossene Gesellschaft: Patrick Lipinski v1.0 1/3 Rechnernetzwerke, Prof. Euler, WS05/06 Musterlösung Testat 1 18.01.2006 fp = fopen( "tmp.log", "r" ); for( int i=0; i<7; i++ ) { fgets( zeile, sizeof zeile, fp ); } if( strstr( zeile, "(0% Verlust" ) ) { printf("\tOkay\n"); } else { printf("\tFehler\n" ); } fclose( fp ); } } PHP: Variante 1 (frei wählbare Adresse) Input.php: Gibt ein Formularfeld aus, in welches die IP eingetragen werden kann <html> <head> <title>Rechnernetzwerke: Uebung 1: Ping in PHP</title> </head> <!-- Formular, zum Eingeben der IP/Host --> <body bgcolor="#FFFFFF" text="#000000"></body> <form methode="post" action="input-ping.php"> IP oder Host eingeben: <input type="text" name="host" value="" /> <input type="submit" name="submit" value="Ping!" /> </form> </body></html> Input-ping.php: Liest das Formularfeld aus und pingt die enthaltene IP <html> <head> <title>Rechnernetzwerke: Uebung 1: Ping in PHP</title> </head> <? // Auslesen des Formularfeldes $host = $_GET['host']; // Ping wird ausgefuehrt mit IP/Host aus dem Formularfeld $ping = exec("ping $host",$result, $error); // Ausgabe in HTML echo '<body bgcolor="#FFFFFF" text="#000000"></body>'; if($error==0) { echo"<span style=\"color: #00FF00;\">Ping erfolgreich!</span>"; } else { echo"<span style=\"color: #FF0000;\">Ping nicht erfolgreich</span>"; } echo '<br>'; echo '<br>'; echo '<br>'; echo '<a href="input.php">Weiteren Test durchf&uuml;hren</a>'; echo '</body></html>'; ?> GESCHLOSSENE GESELLSCHAFT Für die Geschlossene Gesellschaft: Patrick Lipinski v1.0 2/3 Rechnernetzwerke, Prof. Euler, WS05/06 Musterlösung Testat 1 18.01.2006 PHP: Variante 2 (fest definierte Adressen) Ping.php: <?php // IP´s festlegen: $ip=array("www.web.de", "127.0.0.1", "www.nichtsda.nix", "www.redleffer.de"); $anzahl = count($ip); // Einträge des Array´s zählen for ($i=0; $i < $anzahl; $i++) { // Im Erfolgsfall ist der Rückgabestatus 0, im Fehlerfall 1 exec("ping -n 1 $ip[$i]", $RueckgabeProgramm, $RueckgabeStatus); // -n Anzahl der Echoanfragen echo $ip[$i]; echo '&nbsp;-&nbsp;'; if($RueckgabeStatus==0) { echo"<font color=\"green\">Ping erfolgreich</font>"; } else { echo"<font color=\"red\">Ping nicht erfolgreich</font>"; } echo '<br>'; } ?> GESCHLOSSENE GESELLSCHAFT Für die Geschlossene Gesellschaft: Patrick Lipinski v1.0 3/3