Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Pingbefehl in QB abfangen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
qbprogger



Anmeldungsdatum: 13.05.2008
Beiträge: 49
Wohnort: Kirchlinteln

BeitragVerfasst am: 29.12.2008, 11:24    Titel: Pingbefehl in QB abfangen Antworten mit Zitat

Hallo,

wenn ich in der Eingabeaufforderung
Code:
ping -t [IP]

eingebe wird ja an die IP das Ping signal gesendet.

Ist es möglich das Ergebnis aubzufangen?


Mfg,
QBPROGGER cool
_________________
Proggen macht Spaß!!!
happy happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 29.12.2008, 13:30    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
Heizi



Anmeldungsdatum: 19.01.2005
Beiträge: 309

BeitragVerfasst am: 29.12.2008, 14:00    Titel: Antworten mit Zitat

Ich glaub das geht nur ohne das -t, denn ansosnten lüuft der Ping ja unendlich weiter oder??

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
qbprogger



Anmeldungsdatum: 13.05.2008
Beiträge: 49
Wohnort: Kirchlinteln

BeitragVerfasst am: 29.12.2008, 14:48    Titel: Antworten mit Zitat

Bis jetzt habe ich: lächeln

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ß!!!
happy happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 29.12.2008, 21:35    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
qbprogger



Anmeldungsdatum: 13.05.2008
Beiträge: 49
Wohnort: Kirchlinteln

BeitragVerfasst am: 02.01.2009, 17:18    Titel: Antworten mit Zitat

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 lächeln
_________________
Proggen macht Spaß!!!
happy happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4597
Wohnort: ~/

BeitragVerfasst am: 02.01.2009, 20:42    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
qbprogger



Anmeldungsdatum: 13.05.2008
Beiträge: 49
Wohnort: Kirchlinteln

BeitragVerfasst am: 03.01.2009, 21:35    Titel: Antworten mit Zitat

Jetzt aber: grinsen

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. zwinkern

Qbprogger
_________________
Proggen macht Spaß!!!
happy happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz