Testar ip e porta

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Testar ip e porta

Mensagem 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
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Testar ip e porta

Mensagem 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.)
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Testar ip e porta

Mensagem 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
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Testar ip e porta

Mensagem 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
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Responder