Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-11-2006
Avatar de urtKami
urtKami urtKami is offline
Registrado
 
Registrado: sep 2006
Ubicación: Bollullos de la Mitación (Sevilla)
Posts: 6
Poder: 0
urtKami Va por buen camino
¿Puerto TCP abierto en remoto?

Hola a tod@s.

Necesito averiguar si un perto TCP está abierto en una máquina Remota.
¿Es posible? ¿Cómo?
Gracias.
Responder Con Cita
  #2  
Antiguo 08-11-2006
Avatar de ppb
[ppb] ppb is offline
Miembro Premium
 
Registrado: jun 2005
Ubicación: España
Posts: 109
Poder: 19
ppb Va por buen camino
Hay muchas herramientas , ahi va una http://sourceforge.net/projects/nmapwin
__________________
Because , I have a power.
Responder Con Cita
  #3  
Antiguo 08-11-2006
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Me imagino a que se refiere a hacerlo por código y no con algun programa externo.

Nunca lo hice pero podrias probar hacer un ping a un puerto específico. Creo que la suite de Indy trae un componente para hacer ping.

Aunque no estoy seguro si se puede cambiar la direccion del puerto.

Ahhhh, otra idea que se acaba de ocurrir intentar, es conectarte con ese puerto, si te responde es porque esta abierto
__________________
[Crandel]
Responder Con Cita
  #4  
Antiguo 08-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por Crandel
Nunca lo hice pero podrias probar hacer un ping a un puerto específico. Creo que la suite de Indy trae un componente para hacer ping.
Hasta donde yo se "ping" utiliza el protocolo ICMP que no tiene puertos.

En cuanto a la pregunta urtKami no conozco otra forma de hacerlo que intentar conectar con ese puerto, si podemos esta abierto, si no podemos esta cerrado

Código Delphi [-]
uses WinSock;

function EstaAbierto(Host: string; Puerto: Integer): Boolean;
var
  WSAData: TWSADATA;
  Address: u_long;
  HostEnt: phostent;
  Addr: sockaddr_in;
  CSocket: Tsocket;
begin
  Result:= FALSE;
  if WSAStartup(MAKEWORD(1, 1), WSADATA) = 0 then
  begin
    Address:= inet_addr(Pchar(Host));
    if Address = INADDR_NONE then
    begin
      HostEnt:= gethostbyname(PChar(Host));
      if HostEnt <> nil then
        Address:= PInteger(HostEnt.h_addr_list^)^;
    end;
    if Address <> INADDR_NONE then
    begin
      CSocket:= socket(AF_INET, SOCK_STREAM, 0);
      if CSocket <> INVALID_SOCKET then
      begin
        Addr.sin_family:= AF_INET;
        Addr.sin_addr.S_addr:= Address;
        Addr.sin_port:= htons(Puerto);
        Result:= connect(CSocket, Addr, Sizeof(Addr)) <> SOCKET_ERROR;
        Closesocket(CSocket);
      end;
    end;
    WSACleanup;
  end;
end;


// Por ejemplo
 if EstaAbierto('www.clubdelphi.com',80) then
   ShowMessage('Esta abierto')
 else
   ShowMessage('Esta cerrado');

PD: Si el puerto esta cerrado, puede que tarde un rato en responder, ten paciencia
Responder Con Cita
  #5  
Antiguo 08-11-2006
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Cita:
Empezado por seoane
En cuanto a la pregunta urtKami no conozco otra forma de hacerlo que intentar conectar con ese puerto, si podemos esta abierto, si no podemos esta cerrado
A uno se le ocurre una idea y vos ya tiras el código
__________________
[Crandel]
Responder Con Cita
  #6  
Antiguo 08-11-2006
Avatar de urtKami
urtKami urtKami is offline
Registrado
 
Registrado: sep 2006
Ubicación: Bollullos de la Mitación (Sevilla)
Posts: 6
Poder: 0
urtKami Va por buen camino
Gracias.
Probaré a ver si es operativo (tengo que ver muchas direcciones), pero esperaba que hubiera una forma mas directa con el WinApi.
Ya os comentaré.
Responder Con Cita
  #7  
Antiguo 08-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por urtKami
Gracias.
Probaré a ver si es operativo (tengo que ver muchas direcciones), pero esperaba que hubiera una forma mas directa con el WinApi.
Ya os comentaré.
No se que idea tienes del "WinApi", pero la última vez que mire, las funciones que utilizo formaban parte de la API.
Responder Con Cita
  #8  
Antiguo 11-11-2006
Avatar de urtKami
urtKami urtKami is offline
Registrado
 
Registrado: sep 2006
Ubicación: Bollullos de la Mitación (Sevilla)
Posts: 6
Poder: 0
urtKami Va por buen camino
Ya lo he conseguido.
Perdon por el retraso en el post, pero estuve fuera por trabajo.

Sabía que era con wl API de WinSock pero no sabía como.

Muchas gracias.
Responder Con Cita
  #9  
Antiguo 31-03-2008
fide fide is offline
Miembro
 
Registrado: oct 2006
Posts: 331
Poder: 18
fide Va por buen camino
eso esta buenisimo, sobre todo para hacer un escaneador de puertos!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cursor Abierto lucasarts_18 MS SQL Server 4 05-09-2005 21:54:49
Detectar archivo abierto StartKill API de Windows 2 14-12-2004 16:05:31
Archivo de excell abierto valentine API de Windows 2 03-06-2004 10:10:28
Compilar sin Delphi abierto Descendents Varios 1 04-12-2003 15:04:11
Microsoft: paladín del código abierto ... kinobi Debates 19 29-10-2003 13:03:40


La franja horaria es GMT +2. Ahora son las 23:00:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi