Thema: Delphi Port überprüfen

Einzelnen Beitrag anzeigen

supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Port überprüfen

  Alt 18. Dez 2004, 04:11
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
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat