AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Geöffnete Ports auflisten: GetTCPTable IpHlpAPI
Thema durchsuchen
Ansicht
Themen-Optionen

Geöffnete Ports auflisten: GetTCPTable IpHlpAPI

Ein Thema von Zacherl · begonnen am 18. Nov 2009 · letzter Beitrag vom 20. Nov 2009
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Geöffnete Ports auflisten: GetTCPTable IpHlpAPI

  Alt 18. Nov 2009, 15:40
Hey,

ich möchte mir mit der GetTCPTable API aus der iphlpapi.dll alle geöffneten TCP Ports auflisten lassen. Seit Vista gibt es laut MSDN die erweiterte Funktion GetExtendedTCPTable, durch welche ich auch an die ProcessID des Besitzerprozesses gelange.

Meine Frage nun:
Gibt es eine Möglichkeit auch ohne die erweiterte API an die ProcessID des Besitzerprozesses zu gelangen? Netstat oder TCPView von Sysinternals schaffen das ja irgendwie scheinbar auch.

Viele Grüße
Zacherl
  Mit Zitat antworten Zitat
uoeb7gp
(Gast)

n/a Beiträge
 
#2

Re: Geöffnete Ports auflisten: GetTCPTable IpHlpAPI

  Alt 19. Nov 2009, 15:55
HI, da sich sonst niemand meldet, anbei Src.

Bedank dich bei "Dirk Claessens"

have a lot of fun!
Angehängte Dateien
Dateityp: zip tcphist_105.zip (16,0 KB, 115x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Geöffnete Ports auflisten: GetTCPTable IpHlpAPI

  Alt 19. Nov 2009, 20:27
Hey,

vielen Dank erstmal, allerdings zeigt das Programm den Besitzerprozess überhaupt nicht an. Darum gings mir primär, weil die Extended APIs erst ab XP SP2 bzw. Vista zur Verfügung stehen. Dennoch kann ja auch das Win200er Netstat die dazugehörigen Prozesse anzeigen.

Viele Grüße
Zacherl
  Mit Zitat antworten Zitat
uoeb7gp
(Gast)

n/a Beiträge
 
#4

Re: Geöffnete Ports auflisten: GetTCPTable IpHlpAPI

  Alt 20. Nov 2009, 10:43
Hallo, anbei src, wo man den Prozess auch sieht.

lg.
Angehängte Dateien
Dateityp: rar tcpipmonitor_159.rar (31,6 KB, 133x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Geöffnete Ports auflisten: GetTCPTable IpHlpAPI

  Alt 20. Nov 2009, 16:24
Hey,

ah das sieht gut aus. Soweit ich das erkennen konnte, gibt es da noch die AllocateAndGetTcpExTableFromStack() API, welche man unter XP nutzen kann, wenn noch kein SP2 installiert wurde. Für die Win2000 früher scheint es dann keine Möglichkeit zu geben, den dazugehörigen Prozess zu einem Port zu ermitteln.

Viele Grüße
Zacherl
  Mit Zitat antworten Zitat
uoeb7gp
(Gast)

n/a Beiträge
 
#6

Re: Geöffnete Ports auflisten: GetTCPTable IpHlpAPI

  Alt 20. Nov 2009, 16:39
Hallo, ich arbeite ausschließlich mit Windows 2000 und da funktionierts tadellos!

lg.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Geöffnete Ports auflisten: GetTCPTable IpHlpAPI

  Alt 20. Nov 2009, 17:10
Zitat von uoeb7gp:
Hallo, ich arbeite ausschließlich mit Windows 2000 und da funktionierts tadellos!
Sicher, dass auch die zugehörigen ProzessIDs angezeigt werden? Laut Code passiert da nämlich folgendes:

Delphi-Quellcode:
// use latest API XP SP2, W2K3 SP1, Vista and later, first call : get size of table
      if ExFlag2 then
GetExtendedTCPTable()

Delphi-Quellcode:
// use originally undocumented API, XP only, not Vista
      else if ExFlag then
AllocateAndGetTcpExTableFromStack()

Delphi-Quellcode:
// use older documented API,
      else
GetTCPTable()

Die letzte API ist allerdings nicht in der Lage die dazugehörigen Prozesse zu ermitteln.
  Mit Zitat antworten Zitat
uoeb7gp
(Gast)

n/a Beiträge
 
#8

Re: Geöffnete Ports auflisten: GetTCPTable IpHlpAPI

  Alt 20. Nov 2009, 17:44
Hallo, da hast sicher recht, hab mir API nicht angesehen.

TCPIPMonitor Demo zeigt jedenfalls ProzessID an.

Funktioniert unter W2000, XP, VISTA

Damit könnte man doch was anfangen, oder?

lg.
Angehängte Grafiken
Dateityp: bmp tcpipmonitor_756.bmp (32,6 KB, 70x aufgerufen)
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Geöffnete Ports auflisten: GetTCPTable IpHlpAPI

  Alt 20. Nov 2009, 19:56
Es gibt auch Pre-XP Methoden um an den Port zu kommen. Die wohl häufigste besteht darin einfach alle Handles zu enumerieren die auf UDP bzw. TCP Sockets verweisen und so an entsprechende Informationen zu gelangen. Eine entsprechende Implementierung in C gibts hier z.B.:
http://files.codes-sources.com/fichi...port.c&lang=en

Ich hab vor Jahren das Ganze auch mal in Delphi implementiert. Mal schauen ob ich den Source noch finde.
Fridolin Walther
"While Mr. Kim, by virtue of youth and naiveté, has fallen prey to the inexplicable need for human contact, let me step in and assure you that my research will go on uninterrupted, and that social relationships will continue to baffle and repulse me."
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz