Entwickler-Ecke
Internet / Netzwerk - Was haltet ihr vonh diesem Port_scanner?
Fighter#1 - Do 08.12.05 19:46
Titel: Was haltet ihr vonh diesem Port_scanner?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109:
| unit U_portscan;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, MPlayer, ScktComp, StdCtrls, ExtCtrls;
type TForm1 = class(TForm) ClientSocket1: TClientSocket; Button1: TButton; Memo1: TMemo; Edit1: TEdit; Edit2: TEdit; Timer1: TTimer; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edit3: TEdit; Label6: TLabel; procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Edit3Change(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure Edit2Change(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin
if errorcode<>0 then begin errorcode:=0; end;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin
If ClientSocket1.Active = True Then begin
Try ClientSocket1.Socket.SendText('Port Scanner look up'); Memo1.Lines.Add('Port : '+IntToStr(ClientSocket1.Port)+' ist online');
except ClientSocket1.Active:=False;
end; end;
end;
procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Host := Edit3.Text; Label3.Caption := Edit2.Text; Timer1.Enabled:=True; Label1.Caption := Edit1.Text; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin ClientSocket1.Active := False; If StrToInt(Label1.cAption) = StrToInt(Edit2.text)-1 Then Timer1.Enabled := False; ClientSocket1.Port := StrToInt(Label1.Caption); ClientSocket1.Active := True; Label1.Caption := IntToStr(StrToInt(Label1.Caption)+1);
end;
procedure TForm1.Edit3Change(Sender: TObject); begin Timer1.Enabled:=False; end;
procedure TForm1.Edit1Change(Sender: TObject); begin Timer1.Enabled:=False; end;
procedure TForm1.Edit2Change(Sender: TObject); begin Timer1.Enabled:=False; end;
end. |
Der Code ist vll. nicht der Sauberste aber, es funktioniert.
Was würdet ihr verbessern oder ändern?
Wer Fragen hat.. einfach mailen
digi_c - Fr 09.12.05 09:12
Versteh es bitte nicht als Kritik aber soooo viel steht da jetzt ja noch nicht...
Aber Portscanner gibt es eh wie Sand am Meer, soll deiner noch mit einem besonderen Feature aufgewertet werden?
Naja "smart is beautifull" :D
Fighter#1 - Fr 09.12.05 14:28
Titel: Ich verstehe dich
Ja du hast ja schon recht, nur die bisherigen Portscanner fand ich bis jetzt
immer ziemlich schwer zum nachprogrammieren.
Und ich denke, das dies eine Variante ist, die ziemlich verständlich ist ...
Er soll aber keine weiteren besonderen Funktionen haben.
Nur ein Denkansatz
gmgler - Fr 09.12.05 14:40
Also wie ich beim ersten Überfliegen des Codes sagen kann, ist der Portscanner recht einfach aufgebaut, aber das ist gut so.
Funktioniert er denn auch? hast du den ausreichen getestet, auch in Bezug auf Router, Firewalls, etc.?
So wie ich das gesehen hab, gibt der Scanner aber nur offene, und keine geschlossenen Ports aus. Wäre gut zu wissen, ob er wirklich erkennt: "Dieser Port ist geschlossen" oder "Dieser Port ist offen", oder lediglich: "Über diesen Port kann ich connecten oder nicht", denn das macht durchaus einen Unterschied.
Sonst sehr übersichtlich.
MFG gmgler
Fighter#1 - Fr 09.12.05 17:05
Titel: Jaja
gmgler hat folgendes geschrieben: |
Also wie ich beim ersten Überfliegen des Codes sagen kann, ist der Portscanner recht einfach aufgebaut, aber das ist gut so.
Funktioniert er denn auch? hast du den ausreichen getestet, auch in Bezug auf Router, Firewalls, etc.?
So wie ich das gesehen hab, gibt der Scanner aber nur offene, und keine geschlossenen Ports aus. Wäre gut zu wissen, ob er wirklich erkennt: "Dieser Port ist geschlossen" oder "Dieser Port ist offen", oder lediglich: "Über diesen Port kann ich connecten oder nicht", denn das macht durchaus einen Unterschied.
Sonst sehr übersichtlich.
MFG gmgler |
Ich kann nur Sagen, ich konnte die offenen Ports über meine Internet IP sehen, ich benutze einen W-Lan Router, so denke ich das das mit den Routern klappt.
Ich fand es als nervig zu sehen welche Ports geschlossen sind, denn ich habe mein Timer1.Interval auf 1 MS gesetzt und ich Scanne dann recht geschwind 2000 Ports, so find ich es zu nervig von 1996 Ports zu hören das sie geschlossen sind.
Aber generell könnte man das ja mit nem PicGrid lösen wo man dann offene Ports mit nem Grünen und geschlossene mit nem Roten Kreis sieht, dann findet man sie auch schnell . . .
Fighter#1 - Fr 09.12.05 17:06
Titel: Re: Jaja
Fighter#1 hat folgendes geschrieben: |
gmgler hat folgendes geschrieben: | Also wie ich beim ersten Überfliegen des Codes sagen kann, ist der Portscanner recht einfach aufgebaut, aber das ist gut so.
Funktioniert er denn auch? hast du den ausreichen getestet, auch in Bezug auf Router, Firewalls, etc.?
So wie ich das gesehen hab, gibt der Scanner aber nur offene, und keine geschlossenen Ports aus. Wäre gut zu wissen, ob er wirklich erkennt: "Dieser Port ist geschlossen" oder "Dieser Port ist offen", oder lediglich: "Über diesen Port kann ich connecten oder nicht", denn das macht durchaus einen Unterschied.
Sonst sehr übersichtlich.
MFG gmgler |
Ich kann nur Sagen, ich konnte die offenen Ports über meine Internet IP sehen, ich benutze einen W-Lan Router, so denke ich das das mit den Routern klappt.
Ich fand es als nervig zu sehen welche Ports geschlossen sind, denn ich habe mein Timer1.Interval auf 1 MS gesetzt und ich Scanne dann recht geschwind 2000 Ports, so find ich es zu nervig von 1996 Ports zu hören das sie geschlossen sind.
Aber generell könnte man das ja mit nem DrawGrid lösen wo man dann offene Ports mit nem Grünen und geschlossene mit nem Roten Kreis sieht, dann findet man sie auch schnell . . . |
gmgler - Fr 09.12.05 18:03
Ok, wenn der so schnell läuft is ja gut.
Jedem wie ers meint. Ich persönlich sehe gerne ob der Port a.) Offen, b.) Zu oder c.) hidden ist.
Man macht einen Portscan eigentlich eh nur, um zu schauen ob EIN BESTIMMTER Port offen ist, oder nicht, und wenn er ZU ist, dann schaut man welchen anderen man nehmen könnte.
Es sollte die Möglichkeit geben, den Scan-Bereich einzuschränken, z.B. scanne von Port 40024 bis 40044, weil es sonst ewig dauert, bis der scanner da angekommen ist.
MFG gmgler
Fighter#1 - Fr 09.12.05 18:39
Titel: Hat er
Also ich kann in mein Edit1 Feld den AnfangsPort eingeben und in mein Edit2 Feld den Endport. so kann ich auch erst 40024 anfangen zu scannen...
gmgler - Fr 09.12.05 21:36
Gut, dann ist das ja in Ordnung, habe den Quelltext wie gesagt nur überflogen, und nicht ausprobiert.
Nehme alles zurück ^^.
MFG gmgler
gmgler - Fr 09.12.05 22:28
Könntest du trotzdem mal einen Screenshot und eine kleine Beschreibung der einzelnen Objekte, Edits, Labels,...
Fighter#1 - Sa 10.12.05 09:20
Titel: Der Screenshot
Hier der Screenshot
gmgler - Sa 10.12.05 11:45
Gut, aber wozu sind Label1, 2 und 3 zuständig?
Deren Value wird während des scans mehrfach ausgelesen.
Fighter#1 - Sa 10.12.05 11:56
Titel: Hierfür
Label2 ist für die von mit hinzugeführte Progressbar und zählt immer von 1 so hoch, wie Ports in der anzahl gescannt werden.
Bsp.
Start Port : 20
End Port : 45
Label2.Caption fängt mi 1 an und hört mit 25 auf.
25 ist dann der max wert der Progressbar.
Label1 zeigt an bei welchem Port man gerade ist,
ich wollte keine Variable nehmen.
Label3 zeigt dann das Ende an, wo dann der Scan stoppt.
Denn wenn ich das Ende auf Edit2 setzen würde könnte es passieren das jemand während des Scans eine Zahl unter dem Aktuellen Port angibt und es dann zu Komplikationen kommt.
gmgler - Sa 10.12.05 12:09
Gut, ich verstehe zwar nicht, warum die keine Variablen verwenden möchtest, aber Label2 ändert sich nicht, is dann aber kein Thema, wenn ich weiss, dass da der Start-Port stehen soll, werde ich das einfach selber ausbessern. Ich hab anscheinend ne ältere Version von deinem Portscanner, denn die Progressbar war noch niocht dabei.
Mfg gmgler
Fighter#1 - Sa 10.12.05 12:20
Titel: Label2
Label2 ändert sich nur dann, wenn man das auch reinprogrammiert hat.
Von ner Progressbar steht ja auch nix im Code.
Aber wie du auf dem Foto siehst zeigt sie an.
gmgler - Sa 10.12.05 12:29
Hab ich auch reinprogrammiert.
Geht sehr gut (jetz, da ich weiss, was wofür gut sein soll), aber es kommt nach ca. 2000 Ports ein Haufen Errormeldungen ovn Wegen Virtueller Socket Puffer.
Fighter#1 - Sa 10.12.05 15:21
Titel: Stimmt
Du hast recht, bei mir kommt auch so ne Fehlermeldung, wis aber nicht
warum. Aber ich scan meistens nur den Bereich 1-1500 oder so was.
Naja, aber sonst gehts ganz gut.
Ich könnte auch noch so was machen, das er nach 1000 Ports kurz aufhört und so tu als würde der User 1000 Ports weiter machen.
Falls du du verstehst wie ich das meine
F.Art - Sa 24.12.05 21:16
ich habe den scanner mal getestet und schnell ist er schon.
aber er funktioniert nicht 100% suverlässig.
er hat bei mir port 25 uns 110 als offen angezeigt was nicht stimmt.
Fighter#1 - So 25.12.05 08:52
Titel: Strange?
Merkwürdig!
Keine Ahnung woran das liegt auf welcher IP hast du denn gescannt?
Also wenn ich router IP Scanne (bzw. DNS-Server) dann komm ich auf
die IPs die ich freigeschaltet habe.
Und bei meiner Netzwerk IP seh ich auch wo mein Netzwerk offen ist.
Bei mir gabs da bisjetzt kaum Fehler.
***aber soll ja nur ne Anregung sein***
F.Art - So 25.12.05 13:09
Ich habe verschiede IPs getestet.
Einmal meine DynDns, damit funktioniert es garnicht.
Dann die Internet IP und die DNS aber bei beiden werden falsche Ports aufgelistet die nicht frei sind.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!