| Autor |
Beitrag |
Fighter#1
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: Do 08.12.05 19:46
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
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: 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" 
|
|
Fighter#1 
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: 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
Hält's aus hier
Beiträge: 24
|
Verfasst: 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 
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: 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 
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: 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
Hält's aus hier
Beiträge: 24
|
Verfasst: 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 
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: 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
Hält's aus hier
Beiträge: 24
|
Verfasst: 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
Hält's aus hier
Beiträge: 24
|
Verfasst: Fr 09.12.05 22:28
Könntest du trotzdem mal einen Screenshot und eine kleine Beschreibung der einzelnen Objekte, Edits, Labels,...
|
|
Fighter#1 
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: Sa 10.12.05 09:20
Titel: Der Screenshot
Hier der Screenshot
Einloggen, um Attachments anzusehen!
|
|
gmgler
Hält's aus hier
Beiträge: 24
|
Verfasst: 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 
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: 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
Hält's aus hier
Beiträge: 24
|
Verfasst: 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 
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: 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
Hält's aus hier
Beiträge: 24
|
Verfasst: 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 
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: 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
      
Beiträge: 434
|
Verfasst: 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 
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: 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
      
Beiträge: 434
|
Verfasst: 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.
|
|
|