Autor Beitrag
cl9wn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Fr 29.08.08 14:41 
Hi, ich habe vor einen PortScanner zu programmieren. Quellcode:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.btnStartClick(Sender: TObject);
var
  i: Integer;
begin
  lbList.Clear;
  ClientSocket1.Host := editIP.Text;

  for i := 100 to 200 do
  begin
    try
      ClientSocket1.Port := i;
      ClientSocket1.Open;
      ClientSocket1.Close;
      lbList.Items.Add('--- Open Port --- ' + IntToStr(i));
    except
    end;
  end;
end;


Und dann ... wenn ich das Programm starte, beispielsweise localhost, 127.0.0.1 oder eine andere IP eingebe (Auch externe) kommt ein SocketError mit der Nummer 10049 ... Google konnte mir nicht wirklich bei meinem Problem helfen ...
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 29.08.08 14:58 
Moin!

Warum jeder (angeblich) zum Lernen einen Portscanner programmieren muss, wird mir vermutlich für immer ein Rätsel bleiben... :roll:

Dein Ansatz ist komplett daneben, so geht das nicht. Du kannst nicht ereignisorientierte Komponenten in einer Schleife dieser Art verwenden, sondern musst auf das OnConnect- bzw. OnError-Error-Ereignis warten. In diesen Ereignissen kannst du dann den nächsten Port versuchen, aber nicht direkt im Ereignishandler, wird mit AV bestraft (indirekte Rekursion) -> sich selbst eine Nachricht schicken. Alternative: blocking-socket-calls nehmen und mit try-except arbeiten. :idea:

Aber: ein TCP-Connect-Portscanner wird von jeder halbwegs dämlichen Firewall ungefähr nach dem 5. Port geblockt, das ist sowieso zwecklos... :mrgreen:

Programmier doch einfach was, bei dem man auch was lernt, z.B. einen Chat mit Zusatzfunktionen oder ein Netzwerkspiel, da hast du mehr von. :zustimm:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Fr 29.08.08 15:29 
Narses, selten so einen treffenden Kommentar gelesen. :rofl:

user profile iconcl9wn hat folgendes geschrieben:
...kommt ein SocketError mit der Nummer 10049 ... Google konnte mir nicht wirklich bei meinem Problem helfen ...

:shock: Kannst Du Englisch?
www.pscs.co.uk/helpd...cket_error_10049.htm

_________________
Na denn, dann. Bis dann, denn.
cl9wn Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Fr 29.08.08 17:06 
user profile iconalzaimar hat folgendes geschrieben:
Narses, selten so einen treffenden Kommentar gelesen. :rofl:

user profile iconcl9wn hat folgendes geschrieben:
...kommt ein SocketError mit der Nummer 10049 ... Google konnte mir nicht wirklich bei meinem Problem helfen ...

:shock: Kannst Du Englisch?
www.pscs.co.uk/helpd...cket_error_10049.htm


Natürlich, weiss ich was der Error bedeutet aber ich weiss nicht wie ich das verarbeiten soll in Delphi.



user profile iconNarses hat folgendes geschrieben:
Moin!
Warum jeder (angeblich) zum Lernen einen Portscanner programmieren muss, wird mir vermutlich für immer ein Rätsel bleiben... :roll: [...]


Ich will den nicht unbedingt programmieren um zu lernen, es schien mir nur sehr einfach zu sein, als ich folgendes Tutorial sah: stephanmax.st.funpic...e/index.php?pageid=4

Falls das tut fürn *popo* ist ... sry aber sowas findet man halt so im Netz ;) Dann werd ich mich ma zum lernen an ein Netzwerkspiel setzen. Chat hab ich schon gemacht.

...