Italia
Fonte/ Codesnippets

Cmd Ping

 
Stefan Landsberg
...

Ich hab da aber nix circa ping gefunden! gibts dafür keinen befehl oder muss ich erstmal gründlich lesen damit ich das finde?


Ping wirst Du imho nicht finden, dass was Du Ping nennst ist Netzwerkkommunikation und per diese Aufgabe gibt es direkt in XProfan bisher keine eingebaute Funktion. Die Codesuche zu Ping ist auch nicht wirklich sehr ergiebig: [...]  aber ein (wenn auch nicht so schöner) Workaround wäre
KompilierenMarkierenSeparieren
indem man ping.exe von Windows nutzt (Konsolenanwendung) und die Ausgaben in un File umgelenkt einläd.
 
06.04.2008  
 




Rolf
Koch
Hi Stefan,

Ping ist kein Befehl in Profan. Man kann aber alles mit Profan realisieren.
Einige Codes auch per Anfänger findest Du unter Profan auf meiner Seite
[...] 
Hier ein etwas älterer Pingcode von mir:
KompilierenMarkierenSeparieren
declare pingstring$,ping$,ping%
********************************************************************

Proc Ping

    Parameters nic$,pingdatei1$,pingdatei2$
    let pingstring$=PING.EXE,nic$,>,pingdatei1$
    Assign #6,pingdatei2$
    Rewrite #6
    Print #6,pingstring$
    Close #6
    WinExecwait(pingdatei2$,0)
    Assign #5,pingdatei2$
    Erase #5
    ASSIGN #3,pingdatei1$
    RESET #3
    Ping%=0

    WHILENOT EOF(#3)

        input #3,ping$
        ping$=mid$(ping$,1,11)
        case equ$(ping$,Antwort von):Ping%=1

    WEND

    CLOSE #3
    Assign #1,pingdatei1$
    Erase #1

EndProc

********************************************************************
Beschreibung:
Es gibt zwar schon eine schnelle und schöne Onlineabfrage über API,
aber leider gibt die Funktion nur 1 für Online zurück, wenn
man über ein Standart DFÜ eingewählt ist.
Diese Prozedur ist halt nur etwas langsamer aber man kann sogar DSL
(also - keine DFÜ-Verbindung) oder das alte T-Online u.s.w abfragen!!
alles mit einem Stern umrandete ist wichtig für die Abfrage
Rolf Koch - Rokosoftware - Koblenz 2002
BEISPIEL
WINDOWSTYLE 31
Window 200,200-300,80
Windowtitle Onlinstatus-Prüfung ohne Api
TextColor RGB(0,0,255),-1
UseFont TIMES NEW ROMAN,20,10,0,0,0
DRAWTEXT 40,10,..moment ermittele!
HIER JETZT DER AUFRUF DER PROZEDUR:********************
PING ADRESSE,ERGEBNISDATEI,BATCHDATEI
Parameter
1.) Webadresse - eine immer vorhandene wie www.nic.de
2.) Dateiname, in welche Pingergebnis geschrieben wird - wird wieder gelöscht!
3.) Dateiname, um Ping korrekt aufzurufen. - wird wieder gelöscht!
********************************************************
TextColor RGB(255,255,255),RGB(255,255,255)
DRAWTEXT 40,10,
UseFont TIMES NEW ROMAN,25,20,1,0,0
TextColor RGB(0,0,255),-1
Ping 192.168.0.7,PINGTEST.TXT,PING.BAT

if equ(ping%,1)

    DRAWTEXT 25,10,Erreichbar

else

    DRAWTEXT 25,10,Nicht erreichbar

endif

ef='./../../function-references/xprofan/waitinput/'>waitinput

Dort wo 192.168.0.7 steht kannst Du Deine Zieladresse angeben.
 
06.04.2008  
 




Stefan
Landsberg
Ciao,
ich möchte in meinem akuellen (ersten) Projekt den Code von Rolf verwenden und hab ihn ein wenig umgeschrieben, sodass er jetz so aussieht:
KompilierenMarkierenSeparieren
declare ping%,ip$

Proc Ping

    declare pingdatei1$, pingdatei2$, pingstring$, ping$
    Parameters ip$
    let pingdatei1$="PINGTEST.TXT"
    let pingdatei2$="PING.BAT"
    let pingstring$="PING.EXE",ip$,">",pingdatei1$
    Assign #6,pingdatei2$
    Rewrite #6
    Print #6,pingstring$
    Close #6
    WinExecwait(pingdatei2$,0)
    Assign #5,pingdatei2$
    Erase #5
    ASSIGN #3,pingdatei1$
    RESET #3
    Ping%=0

    WHILENOT EOF(#3)

        input #3,ping$
        ping$=mid$(ping$,1,11)
        case equ$(ping$,"Antwort von"):Ping%=1

    WEND

    CLOSE #3
    Assign #1,pingdatei1$
    Erase #1

EndProc

********************************************************************
Beschreibung:
Es gibt zwar schon eine schnelle und schöne Onlineabfrage über API,
aber leider gibt die Funktion nur 1 für Online zurück, wenn
man über ein Standart DFÜ eingewählt ist.
Diese Prozedur ist halt nur etwas langsamer aber man kann sogar DSL
(also - keine DFÜ-Verbindung) oder das alte T-Online u.s.w abfragen!!
Vielen Dank für den (von mir veränderten) Quelltext der Prozedur an:
Rolf Koch - Rokosoftware - Koblenz 2002
----------------------------------------------------------------------
HIER JETZT DER AUFRUF DER PROZEDUR:
PING ADRESSE,ERGEBNISDATEI,BATCHDATEI
Parameter
1.) Webadresse - eine immer vorhandene wie www.nic.de
Wenn die Prozedur verwendet wird muss die Variable ping%
global deklariert werden. An diese Variable wird folgender Wert übergeben:
Erreichbarkeit der IP         ---        Wert
-------------------------------------------------------
Nicht Erreichbar                        0
Erreichbar                             1
*****************************************************
n>**

Jetz würde ich aber gerne hinter den dos Befehl ping noch den parameter -a setzen damit der Hostname der ip auch ausgegeben wird.

jetzt weiß ich aber nicht wie ich es machen soll, dass in der ersten zeile der pingtest.txt das Ping und das drauf folgende leerzeichen übersprungen werden und alle darauf folgende zeichen bis zum nächsten leerzeichen in una variabile eingelesen werden (z.B.: hostname$).

In Rolfs Code verwirrt mich dieser Befehl "ping$=mid$(ping$,1,11)".

Der liest ja eigentlich ab dem ersten zeichen die folgenden 11 zeichen in die variable ping$ ein. Bei einer erfolgreichen ping abfrage lautet der inhalt von ping$ also "Antwort von".

Der inhalt der pingtest.txt sieht so aus:



Ping wird ausgefhrt fr 127.0.0.1 mit 32 Bytes Daten:

Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=64

Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=64

Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=64

Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=64

Ping-Statistik fr 127.0.0.1:

Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),

Ca. Zeitangaben in Millisek.:

Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms



meiner meinung nach müsste der inhalt von ping$ dann aber "Ping wird a" lauten.

Kann mir das jemand erklären?

ich hoffe ich hab das jetz verständlich geschrieben. wenn nicht dann fragt einfach nochmal nach. 
 
22.07.2008  
 




KompilierenMarkierenSeparieren
let pingstring$="PING.EXE",ip$,"-a >",pingdatei1$
>
 
22.07.2008  
 




Stefan
Landsberg
ok ich hab nicht verständlich geschrieben

wie ich das mache dass der hostname ausgegeben wird weiß ich.
meine frage war wie Io l' hostnamen anschließend in die variable hostname$ einlesen kann.

ach außerdem:
KompilierenMarkierenSeparieren
let pingstring$="PING.EXE",ip$,"-a >",pingdatei1$
das -a ist an der falschen stelle. es muss vor die ip also so:
let pingstring$="PING.EXE -a",ip$,">",pingdatei
re>

(ist ein komisches Gefühl den grande iF korrigiern zu dürfen )
 
22.07.2008  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

5.221 Views

Untitledvor 0 min.
Uwe Starke17.11.2023
Georg Teles01.08.2023
Langer30.01.2021
Ingo20.01.2020
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

Stefan Landsberg (2x)
iF (2x)
Rolf Koch (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie