Einzelnen Beitrag anzeigen

jackie
(Gast)

n/a Beiträge
 
#1

Welcher Dienst hinter welchem Port?

  Alt 2. Mär 2004, 18:40
Hi!
Ich benütze folgenden Code, um herauszufinden, ob ein Port offen ist (nur im lokalen Netzwerk; nichts illegales ):
Delphi-Quellcode:
function PortPresent(const URL: String; Port: DWord): Boolean;
// URL can be like [url]www.developers.org[/url] or an IP like 127.0.0.1
var
  S: TSocket;
  A: SOCKADDR_IN;
  W: TWsaData;
  H: pHostEnt;
begin
  Result := False;
  if WsaStartup(MakeWord(1, 1), W) = 0 then
  begin
    H := GetHostByName(PChar(URL));
    if H <> nil then
    begin
      FillChar(A, SizeOf(A), 0);
      A.sin_family := AF_INET;
      A.sin_addr.S_addr := PDWord(H.h_addr_list^)^;
      A.sin_port := htons(Port);
      S := Socket(AF_INET, SOCK_STREAM, 0);
      if S <> INVALID_SOCKET then
      begin
        Result := Connect(S, A, SizeOf(A)) = 0;
        CloseSocket(S);
      end;
    end;
  end;
  WSACleanup;
end;
Mich würde nun interessieren, ob ich irgendwie herausfinden kann, welcher Dienst hinter welchem Port steckt (zB Port 22 = SSH). Gibt es dafür eine Möglichkeit?
  Mit Zitat antworten Zitat