Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Port überprüfen (https://www.delphipraxis.net/34960-port-ueberpruefen.html)

jfheins 30. Nov 2004 19:08


Port überprüfen
 
Ich möchte gerne überprüfen, ob ein bestimmter TCP-Port geöffnet ist, oder nicht.
Also so eine Art Portscanner, der im gesamten LAN nach PC's mit diesem offenen Port sucht.

Mich interessiert im speziellen diese Überprüfung, ob der Port jetzt offen ist, oder nicht,
was muss ich da machen? reicht da ein einfaches
Delphi-Quellcode:
IdTCPClient1.Connect(1000);
oder geht das anders besser ???

Matze 30. Nov 2004 19:12

Re: Port überprüfen
 
Luckie hat einmal einen Portscanner geschrieben, such mal auf seiner Homepage danach.

jfheins 30. Nov 2004 19:14

Re: Port überprüfen
 
Schon gesucht, aber nichts gefunden ...

Matze 30. Nov 2004 19:43

Re: Port überprüfen
 
Zitat:

Zitat von jfheins
Schon gesucht, aber nichts gefunden ...

Da ist er doch ;)
http://www.luckie-online.de/Delphi/Alt/


PS: @Luckie: Die Schrift auf deiner Seite ist etwas klein :roll:

jfheins 1. Dez 2004 20:02

Re: Port überprüfen
 
Ich will ja, aber ich finde da irgendwie nichts von wegen "... .conect;"

Ich bin doch nicht etwa blind, oder ?

jfheins 16. Dez 2004 22:14

Re: Port überprüfen
 
***PUSH***

Ein (verständliches) Beispiel wäre toll ...

jfheins 17. Dez 2004 23:23

Re: Port überprüfen
 
Zitat:

Zitat von jfheins
***PUSH***

Ein (verständliches) Beispiel wäre toll ...


supermuckl 18. Dez 2004 03:11

Re: Port überprüfen
 
1. client.port setzen
2. connecten (mit timeout)
3. connect befehl mit einem try except block umklammern und bei exception ist der connect missglückt -> port zu
4. bei keiner exception (client.connected muss dann hierbei auf true sein) bist du connected -> port offen

code ist aus dem kopf!
Code:
if client.connected then client.disconnect;

client.port := 21; // port als beispiel 21 (FTP)
try
client.connect(5000); // 5 sekunden timeout
if client.connected then offen := true;
except
offen := false;
end;
falls nicht ausgeschalten, wird dir aber delphi das programm anhalten wenn eine exception auftritt
also die exe ohne die IDE starten damit es keine fehlermeldungen gibt

an dieser stelle möchte ich aber noch darauf hinweisen, das es so wie es ist, die langsamste methode ist, ports zu scannen.

besser bzw am besten ist es, threads zu verwenden, damit man in den wartezeiten beim connecten mehrere andere hosts bzw ports gleichzeitig connecten lässt und nicht alles nacheinander passiert ( im schlechtesten fall also pro port und pro host 5 sekunden )

mit threads könntest du eine x beliebige ( kommt auf die internetverbindung + cpu und ram und freie lokale ports ( max 65000 ) an )
anzahl von clients gleichzeitig connecten lassen bzw warten lassen bis connected ist..

näheres dazu findest du in diversen turoials bzw suchfunktion DP

wenns hart auf hart kommt kann ich dir auch nen source von einem threaded portscanner von mir geben, was ich aber ungern tue, weil da hast du nix dabei gelernt

jfheins 19. Dez 2004 15:14

Re: Port überprüfen
 
Hab's jetzt mal so probiert, aber der macht irgendwann nicht mehr weiter ...
http://www.delphipraxis.net/internal...=287403#287403


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz