| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	
	
	
		| Autor | 
		Nachricht | 
	
	
		qbprogger
 
  
  Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
  | 
		
			
				 Verfasst am: 29.12.2008, 10:24    Titel: Pingbefehl in QB abfangen | 
				     | 
			 
			
				
  | 
			 
			
				Hallo,
 
 
wenn ich in der Eingabeaufforderung 
 
eingebe wird ja an die IP das Ping signal gesendet.
 
 
Ist es möglich das Ergebnis aubzufangen?
 
 
 
Mfg,
 
QBPROGGER   _________________ Proggen macht Spaß!!!
 
      | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Manuel
 
  
  Anmeldungsdatum: 23.10.2004 Beiträge: 1271 Wohnort: Bayern
  | 
		
			
				 Verfasst am: 29.12.2008, 12:30    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Die Ausgabe direkt von QB aus abzufragen ist annähernd unmöglich^^. Es ist allerdings möglich, die Ausgabe in Datei umzulenken, die du dann mit QBasic öffnen und interpretieren kannst.
 
 
Zum Umlenken der Ausgabe einfach ein "> dateiname" schreiben, also 	  | Code: | 	 		  | ping -t [IP] > ping.txt | 	  Dabei wird die Datei "ping.txt" neu erstellt bzw. eine bereits vorhandene ersetzt. Um die Ausgabe an die Textdatei ranzuhängen, muss man einen Doppelumlenker setzen: 	  | Code: | 	 		  | ping -t [IP] >> ping.txt | 	  Lässt den bereits vorhandenen Text in die "ping.txt" unberührt und hängt die Ausgabe einfach nur an.
 
 
Ob es allerdings möglich ist, eine Textdatei mit QB lesend zu öffnen, während der ping-Befehl läuft, wage ich zu bezweifeln^^. _________________ DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
 
---
 
www.astorek.de.vu | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Heizi
 
  
  Anmeldungsdatum: 19.01.2005 Beiträge: 309
 
  | 
		
			
				 Verfasst am: 29.12.2008, 13:00    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Ich glaub das geht nur ohne das -t, denn ansosnten lüuft der Ping ja unendlich weiter oder??
 
 
MfG | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		qbprogger
 
  
  Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
  | 
		
			
				 Verfasst am: 29.12.2008, 13:48    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Bis jetzt habe ich:   
 
 
 	  | Code: | 	 		  
 
top:
 
CLS
 
INPUT "Funktion"; f$
 
IF f$ = "IP" THEN
 
 INPUT "IP= ", ip$
 
 SHELL "ping -a -n 4 " + ip$ + " > C:\ip.txt"
 
 e% = 0
 
ELSEIF f$ = "DOMAIN" THEN
 
 INPUT "DOMAIN= ", dom$
 
 SHELL "ping -n 4 " + dom$ + " > C:\domain.txt"
 
 e% = 1
 
ELSE
 
 PRINT "Unbekannter Befehl."
 
 GOSUB top
 
END IF
 
IF e% = 0 THEN
 
 'IP einlesen
 
ELSEIF e% = 1 THEN
 
 'Domain einlesen
 
ELSE
 
 PRINT "!Systemfehler!"
 
 PRINT "Bitte Taste drcken"
 
 DO WHILE a$ = ""
 
  a$ = INKEY$
 
 LOOP
 
END IF
 
END | 	  
 
 
In den Dateien steht dann das Ergebniss. _________________ Proggen macht Spaß!!!
 
      | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		dreael Administrator
  
  Anmeldungsdatum: 10.09.2004 Beiträge: 2531 Wohnort: Hofen SH (Schweiz)
  | 
		
			
				 Verfasst am: 29.12.2008, 20:35    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Kleine Verbesserung:
 
 	  | Code: | 	 		  INPUT "Host oder IP-Adresse";h$
 
SHELL "ping " + h$ + " >" + ENVIRON$("TEMP") + "\~PING.TXT"
 
OPEN ENVIRON$("TEMP") + "\~PING.TXT" FOR INPUT AS 1
 
WHILE NOT EOF(1)
 
  LINE INPUT#1, z$
 
  ' z$ entsprechend verarbeiten
 
WEND
 
CLOSE 1
 
KILL ENVIRON$("TEMP") + "\~PING.TXT" | 	  
 
d.h. übliches Grundprinzip, den Output in eine temporäre Datei (in %TEMP%!) umleiten, einlesen/verarbeiten und temporäre Datei am Schluss wieder löschen.
 
 
Hinweis: Code nicht getestet, d.h. hier direkt hineingeschrieben. _________________ Teste die PC-Sicherheit mit www.sec-check.net | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		qbprogger
 
  
  Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
  | 
		
			
				 Verfasst am: 02.01.2009, 16:18    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				So,
 
 
Ich habe das Proggi jetzt fertig:
 
 	  | Code: | 	 		  top:
 
CLS
 
INPUT "Funktion"; f$
 
IF f$ = "IP" THEN
 
 INPUT "IP= ", ip$
 
 PRINT "Bitte warten..."
 
 SHELL "ping -a -n 4 " + ip$ + " >" + ENVIRON$("TEMP") + "\~ip.txt"
 
 PRINT "Fertig!"
 
 e% = 0
 
ELSEIF f$ = "DOMAIN" THEN
 
 INPUT "DOMAIN= ", dom$
 
 PRINT "Bitte warten..."
 
 SHELL "ping -n 4 " + dom$ + " >" + ENVIRON$("TEMP") + "\~domain.txt"
 
 PRINT "Fertig!"
 
 e% = 1
 
ELSE
 
 PRINT "Unbekannter Befehl."
 
 GOSUB top
 
END IF
 
IF e% = 0 THEN
 
 OPEN ENVIRON$("TEMP") + "\~ip.txt" FOR INPUT AS #1
 
 WHILE NOT EOF(1)
 
  LINE INPUT #1, z$
 
  PRINT z$
 
 WEND
 
 CLOSE
 
 KILL ENVIRON$("TEMP") + "\~ip.txt"
 
ELSEIF e% = 1 THEN
 
 OPEN ENVIRON$("TEMP") + "\~domain.txt" FOR INPUT AS #1
 
 WHILE NOT EOF(1)
 
  LINE INPUT #1, z$
 
  PRINT z$
 
 WEND
 
 CLOSE
 
 KILL ENVIRON$("TEMP") + "\~domain.txt"
 
ELSE
 
 PRINT "!Systemfehler!"
 
 PRINT "Bitte Taste drcken"
 
 DO WHILE a$ = ""
 
  a$ = INKEY$
 
 LOOP
 
END IF
 
END | 	  
 
 
Es läuft sehr gut.
 
 
Danke an alle.
 
 
qbprogger   _________________ Proggen macht Spaß!!!
 
      | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		nemored
 
  
  Anmeldungsdatum: 22.02.2007 Beiträge: 4712 Wohnort: ~/
  | 
		
			
				 Verfasst am: 02.01.2009, 19:42    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				oha ...
 
Bei
 
 	  | Code: | 	 		  top:
 
[...]
 
 GOSUB top  | 	  
 
kann es dir zu einem Stapelüberlauf kommen. GOSUB verzweigt zu der Stelle top und merkt sich eine Rücksprungadresse, zu der er eigentlich irgendwann einmal mit RETURN zurückgeschickt werden soll. Wird zu oft GOSUB ohne RETURN aufgerufen, dann geht dem Programm der Speicher aus.
 
Besser wäre da schon GOTO, aber noch viel besser ist natürlich eine Schleife. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		qbprogger
 
  
  Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
  | 
		
			
				 Verfasst am: 03.01.2009, 20:35    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Jetzt aber:   
 
 
 	  | Code: | 	 		  DO WHILE e% = 0
 
CLS
 
INPUT "Funktion"; f$
 
IF f$ = "IP" THEN
 
 INPUT "IP= ", ip$
 
 PRINT "Bitte warten..."
 
 SHELL "ping -a -n 4 " + ip$ + " >" + ENVIRON$("TEMP") + "\~ip.txt"
 
 PRINT "Fertig!"
 
 e% = 1
 
ELSEIF f$ = "DOMAIN" THEN
 
 INPUT "DOMAIN= ", dom$
 
 PRINT "Bitte warten..."
 
 SHELL "ping -n 4 " + dom$ + " >" + ENVIRON$("TEMP") + "\~domain.txt"
 
 PRINT "Fertig!"
 
 e% = 2
 
ELSEIF f$ = "HACK" THEN
 
 INPUT "IP= ", h$
 
 e% = 3
 
ELSE
 
 PRINT "Unbekannter Befehl."
 
END IF
 
LOOP
 
IF e% = 1 THEN
 
 OPEN ENVIRON$("TEMP") + "\~ip.txt" FOR INPUT AS #1
 
 WHILE NOT EOF(1)
 
  LINE INPUT #1, z$
 
  PRINT z$
 
 WEND
 
 CLOSE
 
 KILL ENVIRON$("TEMP") + "\~ip.txt"
 
ELSEIF e% = 2 THEN
 
 OPEN ENVIRON$("TEMP") + "\~domain.txt" FOR INPUT AS #1
 
 WHILE NOT EOF(1)
 
  LINE INPUT #1, z$
 
  PRINT z$
 
 WEND
 
 CLOSE
 
 KILL ENVIRON$("TEMP") + "\~domain.txt"
 
ELSE
 
 PRINT "!Systemfehler!"
 
 PRINT "Bitte Taste drcken"
 
 DO WHILE a$ = ""
 
  a$ = INKEY$
 
 LOOP
 
END IF
 
END | 	  
 
 
Danke nemored.   
 
 
Qbprogger _________________ Proggen macht Spaß!!!
 
      | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		 |