Ping

Übersicht BlitzBasic DLLs und Userlibs

Neue Antwort erstellen

 

Steffen

Betreff: Ping

BeitragMo, Feb 16, 2004 14:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Code sagt mehr als 100 Worte:
Code: [AUSKLAPPEN]

Print Ping("blitzforum.de")
delay(2000)
end

Bei einem Fehler wird -1 zurückgegeben, sonst der Ping-Wert.
Und hier noch eine zip-Datei mit der ping.dll und der ping.decls
Ich hoffe, das die Dll richtig funktioniert.
Viel Spaß beim Testen.

ACHTUNG: Die .dll wurde mit Delphi 6 Personal erstellt. Mit Delphi 6 Personal dürfen keine kommerziellen Programme erstellt werden.
Die .dll basiert auf dem Code, der unter http://members.chello.be/ws36637/ping.html zu finden ist. Ich weiß also nicht, wie es mit der rechtlichen Lage aussieht.
>PC: Pentium III 750MHz, ATI Rage 128 mit 32Mb, Windows Me, Blitz3D 1.87
>Laptop: Pentium M 1,4GHz, 512 Mb DDR, ATI Mobility Radeon 9000 mit 64Mb DDR, Windows XP Home, Blitz3D 1.87
  • Zuletzt bearbeitet von Steffen am Mo, Feb 16, 2004 18:52, insgesamt einmal bearbeitet

DC

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragMo, Feb 16, 2004 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
lol.. man kanns auch übertreiben mit den DLL's. Das geht auch ganz einfach mit purem BB. Habe das mal gerade ausprobiert und ne kleine Function geschrieben:

Code: [AUSKLAPPEN]

Function ping(url$)
   Local ping=MilliSecs()
   Local stream=OpenTCPStream(url$,80)
   ping=MilliSecs()-ping
   CloseTCPStream stream
   Return ping
End Function

Print "Ping von www.blitzforum.de ist "+ping("www.blitzforum.de")+" ms"
Print "Ping von www.unrealsoftware.de ist "+ping("www.unrealsoftware.de")+" ms"
WaitKey()
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com |
www.CarnageContest.com | www.Stranded3.com
 

Steffen

BeitragMo, Feb 16, 2004 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Und was ist, wenn der Zielrechner nicht existiert oder der Port 80 zu ist?
>PC: Pentium III 750MHz, ATI Rage 128 mit 32Mb, Windows Me, Blitz3D 1.87
>Laptop: Pentium M 1,4GHz, 512 Mb DDR, ATI Mobility Radeon 9000 mit 64Mb DDR, Windows XP Home, Blitz3D 1.87

Mike Nike

BeitragMo, Feb 16, 2004 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Wäre dass dann nicht auch ganz einfach? Weiss nicht, aber meine Intuition sagt folgendes:
Code: [AUSKLAPPEN]

Function ping(url$)
   Local ping=MilliSecs()
   Local stream=OpenTCPStream(url$,80)
   if not stream then
    return -1
   else
    ping=MilliSecs()-ping
    CloseTCPStream stream
    Return ping
   end if
End Function

Print "Ping von www.blitzforum.de ist "+ping("www.blitzforum.de")+" ms"
Print "Ping von www.unrealsoftware.de ist "+ping("www.unrealsoftware.de")+" ms"
WaitKey()
..where the only limit is your imagination.
 

Steffen

BeitragDi, Feb 17, 2004 13:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn der Port 80 zu ist, dann wird -1 zurückgeliefert, obwohl der Server existiert, das sollte nicht sein.
Ping sagt nur, ob eine Verbindung mit dem anderen Computer besteht(und wie schnell die Verbindung ist), über Ports wird nichts gesagt. Außerdem wird bei Ping ein bestimmtes Päckchen versendet und die Zeit gemessen, bis die Antwort zurück ist.
Dein Code ist eigentlich nur ein primitiver Portscanner, der den Port 80 untersucht.
>PC: Pentium III 750MHz, ATI Rage 128 mit 32Mb, Windows Me, Blitz3D 1.87
>Laptop: Pentium M 1,4GHz, 512 Mb DDR, ATI Mobility Radeon 9000 mit 64Mb DDR, Windows XP Home, Blitz3D 1.87

DC

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragDi, Feb 17, 2004 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Website ist in der Regel immer mit Port 80 erreichbar, da das der Port für das HTTP-Protokoll ist. Ich finde diese Funktion reicht aus.. die Werte die sie liefert sind halbwegs akzeptabel.

Aber deins ist sicherlich auch gut. Wollte halt nur sagen das es auch mit BB alleine geht (wenn auch vllt nicht so perfekt).
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com |
www.CarnageContest.com | www.Stranded3.com

BtbN

BeitragMo, Sep 05, 2005 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
So, dafür braucht man aber nun wirklich keine DLL!
Es geht auch so, und zwar nicht über Port 80.

BlitzBasic: [AUSKLAPPEN]
Function ping#(iiippp$)

Local stream = CreateProcess (\"ping \"+iiippp$)
Local tempdata$
Local verlust#

Repeat
tempdata$ = ReadLine(stream)
If Instr(tempdata$,\" (\") Then
tempdata$ = Mid(tempdata$,Instr(tempdata$,\" (\")+2)
tempdata$ = Mid(tempdata$,1,Instr(tempdata$,\"%\")-1)
verlust# = Mid(tempdata$,Instr(tempdata$,\" (\")+1)
Return verlust#
EndIf
Until Eof(stream)

Return -1

End Function


Diese funktion liefert einem den Verlust in % zurück.
Kommt also eine 100, hat der Ping nicht funktioniert.
Kommt -1, dann hat irgendwas nicht funktioniert...
Ich weiß nicht, ob das auch mit anderen Windows funktioniert.
Mit WinMe gings so. Bitte testet das mal.


Mfg,
BORNtobeNAMELESS
 

Steffen

BeitragMo, Sep 05, 2005 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

CreateProcess gibts leider nur bei BlitzPlus.

Gruß Steffen
>PC: Pentium III 750MHz, ATI Rage 128 mit 32Mb, Windows Me, Blitz3D 1.87
>Laptop: Pentium M 1,4GHz, 512 Mb DDR, ATI Mobility Radeon 9000 mit 64Mb DDR, Windows XP Home, Blitz3D 1.87

BtbN

BeitragMo, Sep 05, 2005 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, stimmt ja.
Aber da ists ne alternative!

Neue Antwort erstellen


Übersicht BlitzBasic DLLs und Userlibs

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group