Página 1 de 1

Testar ip e porta

Enviado: 04 Jan 2016 23:10
por Clipper
Prezados colegas

Boa noite.

Gostaria de saber se existe alguma função para testar um IP e Porta de uma rede interna.
Exemplo : TesteIP("192.168.1.20",34567)

Se tiver só o teste de IP já ajuda mas o ideal é que testasse também a porta.

Desde já obrigado.

Até logo.

Marcelo

Testar ip e porta

Enviado: 05 Jan 2016 00:48
por sygecom
Segue abaixo um exemplo:

Código: Selecionar todos

***************************************
STATIC FUNCTION INICIA_TESTE(cIP,nPORTA)
***************************************
LOCAL pSocket

IF EMPTY(cIP)
   ALERT('IP inválido, Favor revisar')
   RETURN(.F.)
ELSE
   cIP:=ALLTRIM(cIP)
ENDIF

IF nPORTA=0
   ALERT('Porta Invalida, Favor revisar')
   RETURN(.F.)
ENDIF
INetInit()

pSocket := INetConnectIP( cIP, nPORTA )   // CONECTA NO TCP/IP
//pSocket := INetConnect( cIP, nPORTA )   // CONECTA NO TCP/IP
IF INetErrorCode( pSocket ) <> 0    // VEREFICA SE DEU ERRO A CONEXÃO
   ALERT('Erro ao Tentar se conectar, Favor revisar o IP e PORTA, Erro: ' + INetErrorDesc(pSocket))
   INetCleanUp()     // limpa a conexão da memoria
   RETURN(.F.)
ENDIF

INetClose( pSocket ) // FECHA CONEXÃO COM TCP/IP
INetCleanUp()        // limpa a conexão da memoria

RETURN(.T.)

Testar ip e porta

Enviado: 05 Jan 2016 23:12
por Clipper
Obrigado Leonardo !

Funcionou perfeitamente.

Eu tinha feito uma função bem parecida, meu erro foi não ter colocado a função Inetinit().

:-Y

Abraços.

Marcelo

Testar ip e porta

Enviado: 06 Jan 2016 06:45
por Clipper
Fiz um pequeno ajuste para meu uso, pois achei que o retorno estava demorando muito (quando desconectado), principalmente por se tratar de um IP fixo e de uma rede interna.

Código: Selecionar todos

***************************************
Function Testaip()
***************************************
LOCAL pSocket
INetInit()
pSocket=InetCreate()
InetSetTimeout(pSocket, 1000) //Ajusta o timeout para 1 segundo
INetConnectIP( mIP, mPORTA, pSocket ) // CONECTA NO TCP/IP
IF INetErrorCode( pSocket ) <> 0  // VEREFICA SE DEU ERRO A CONEXÃO
   Msginfo('Dispositivo de captura não encontrado !','Erro')
   INetCleanUp()  // limpa a conexão da memoria
   Return(.F.)
ENDIF
INetClose( pSocket ) // FECHA CONEXÃO COM TCP/IP
INetCleanUp()    // limpa a conexão da memoria
Return(.T.)
Até logo.

Marcelo