Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
22.05.2012, 13:05:27
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  Internet / LAN Forum
| | |-+  Aktive Verbindungen zum eigenen PC auflisten ???
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Aktive Verbindungen zum eigenen PC auflisten ???  (Gelesen 1743 mal)

Gast
« am: 11.05.2003, 09:37:45 »

Hallo Zusammen,

kann mir jemand von euch helfen ?

Ich hab einen Apache Webserver bei mir laufen, jetzt will ich einfach nur ein kleines fenster machen mit nem Memo oder einer Listbox in der die aktiven Verbindungen zu meinem Webserver aufgelistet sind.

Kann man diese Verbindungen nicht irgendwie von Windows her abfragen ?

MrDelphi
Gespeichert
Jailbird
Hero Member
*****
Offline Offline

Beiträge: 1866

34030132 jailbird_24@hotmail.com
WWW
« Antworten #1 am: 11.05.2003, 10:01:46 »

irgendwie gehts...das konsolen-tool netstat kann es schliesslich auch :) könntest die eingabe von da holen
Gespeichert


Gast
« Antworten #2 am: 11.05.2003, 10:31:26 »

Netstat, guter einwand, ich hab mich mal informiert, und hab herausgefunden, wie man alle verbindungen zu port 80 auflisten kann...

Code:
netstat -n | find ":80"
[/b]

Die Ausgabe sieht dann so aus

[img src="http://www.stitchmedia.de/img/netstat.jpg" border="0" alt="IPB Image" /]

Wie kann ich mir denn jetzt die Remote Adressen in einer listbox anzeigen lassen ?

MrDelphi
Gespeichert
Jailbird
Hero Member
*****
Offline Offline

Beiträge: 1866

34030132 jailbird_24@hotmail.com
WWW
« Antworten #3 am: 11.05.2003, 10:46:03 »

in den tips steht soweit ich weiss, wie du so eine eingabe ausliest...ansonsten mit parameter aufrufen

netstat -n | find ":80" ]C:tmp.txt

das schreibt die ausgabe in obige datei. die kannst du dann anhand der tabulatoren (#9) parsen und/oder dem : etc :)

ach ja...ev. noch anhand dem wartend/hergestellt, etc gucken, was der status der verbindung ist :)

edit: hier der link: [a href="http://www.swissdelphicenter.ch/de/showcode.php?id=990" target="_blank"]http://www.swissdelphicenter.ch/de/showcode.php?id=990[/a]
Gespeichert

Jailbird
Hero Member
*****
Offline Offline

Beiträge: 1866

34030132 jailbird_24@hotmail.com
WWW
« Antworten #4 am: 11.05.2003, 11:19:24 »

hab das ganze jetzt mal über eine pipe gelöst (nicht so wie im tip)

Code:
function TForm1.CallNetstat: string;

var

  ProcessInfo: TProcessInformation;

  SecAttribs: TSecurityAttributes;

  StartupInfo: TStartupInfo;

  hReadOut, hWriteOut: THandle;

  BytesRead: dword;

  Buffer: Array [1..1024] of char;

begin

  Result := '';

  FillChar(SecAttribs, SizeOf(TSecurityAttributes), #0);

  with SecAttribs do

  begin

    nLength := SizeOf(TSecurityAttributes);

    bInheritHandle := True;

    lpSecurityDescriptor := nil;

  end;

  CreatePipe(hReadOut, hWriteOut, @SecAttribs, 0);

  FillChar(StartupInfo, SizeOf(TStartupInfo), #0);

  with StartupInfo do

  begin

    cb := SizeOf(TStartupInfo);

    dwFlags := STARTF_USESHOWWINDOW  or STARTF_USESTDHANDLES;

    wShowWindow := SW_HIDE;

    hStdOutput := hWriteOut;

  end;

  if CreateProcess(nil, pchar('cmd /c netstat -n | find ":"'),

    @SecAttribs, @SecAttribs, True, NORMAL_PRIORITY_CLASS, nil, nil,

    StartupInfo, ProcessInfo) then

  begin

    WaitforSingleObject(ProcessInfo.hProcess, INFINITE);

    FillChar(Buffer, 1024, #0);

    ReadFile(hReadOut, Buffer, 1024, BytesRead, nil);

    CloseHandle(ProcessInfo.hProcess);

    CloseHandle(ProcessInfo.hThread);

    CloseHandle(hReadOut);

    CloseHandle(hWriteOut);

    Result := Buffer;

  end;

end;



procedure TForm1.Button1Click(Sender: TObject);

var

  k: integer;

  tmp: string;

begin

  Memo1.Lines.BeginUpdate;

  Memo1.Text := CallNetstat;

  for k := Memo1.Lines.Count - 1 downto 0 do

  begin

    if Pos(':80', Memo1.Lines[k]) = 0 then       // hier den gewünschten port angeben

    begin

      Memo1.Lines.Delete(k);

    end else begin

      tmp := Trim(Memo1.Lines[k]);

      Delete(tmp, 1, Pos(' ', tmp));

      tmp := Trim(tmp);

      Delete(tmp, 1, Pos(' ', tmp));

      tmp := Trim(tmp);

      Delete(tmp, Pos(':', tmp), Length(tmp));

      Memo1.Lines[k] := Trim(tmp);

    end;

  end;

  Memo1.Lines.EndUpdate;

end;
Gespeichert

Kamil
Gast
« Antworten #5 am: 14.05.2003, 01:42:30 »

Oder über die IPHLPAPI:
[a href="http://users.pandora.be/dirk.claessens2/downloads/tcphist.zip" target="_blank"]http://users.pandora.be/dirk.claessens2/do...ads/tcphist.zip[/a]
Gespeichert
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS