Página 1 de 1
COMANDO HARBOUR PARA SABER SE TEM INTERNET
Enviado: 13 Jul 2021 22:07
por jadires
Olá galera.]
Alguém sabe os comando harbour para checar se tem internet ativa na cpu ? ?
COMANDO HARBOUR PARA SABER SE TEM INTERNET
Enviado: 14 Jul 2021 07:26
por Jairo Maia
Não sei se alguém tem uma sugestão melhor, mas uso dessa forma:
Código: Selecionar todos
Func IConectada( cAddress ) // Se cAddress = Nil, por padrÒo checa o google
Local aHosts
inetInit()
If cAddress == Nil
cAddress := "www.google.com.br"
EndiF
aHosts := inetGetHosts( cAddress )
IF aHosts == NIL .or. Len(aHosts)=0
inetCleanup()
Return .f.
endif
inetCleanup()
Return .t.
Se você não enviar a URL a ser verificada, ela checa o google, que é uma URL com significativa estabilidade.
COMANDO HARBOUR PARA SABER SE TEM INTERNET
Enviado: 14 Jul 2021 09:35
por Itamar M. Lins Jr.
Olá!
O windows fica um iconizinho no canto direito inferior.
Fica o desenho de um GLOBO.
Tem coisas que é bom deixar a cargo do sistema operacional.
Tem outros exemplos aqui no forum, basta procurar.
Antigamente agente conversava com a impressora, hoje conversamos com o sistema operacional sobre qual é o estado da impressora.
Mas mesmo assim, mesmo sem internet existe a porta loop back 127.0.0.1 ou localhost, que sempre funciona se desejar testar (apache) por exemplo local.
Saudações,
Itamar M. Lins Jr.
COMANDO HARBOUR PARA SABER SE TEM INTERNET
Enviado: 14 Jul 2021 09:47
por jadires
Muito Obg. Jairo Maia.
Me atendeu 100%
COMANDO HARBOUR PARA SABER SE TEM INTERNET
Enviado: 14 Jul 2021 19:25
por alxsts
Olá!
Fiz algumas alterações na função do Jairo (com licença Jairo).
Código: Selecionar todos
// Compilar: hbmk2 teste xhb.hbc
PROCEDURE Teste
hb_Alert( If( IConectada( 'http://sitefoo.com/' ), 'True', 'False' ) )
RETURN
//--------------------------------------------------------------------------
FUNCTION IConectada( cAddress ) // Se cAddress = Nil, por padrÒo checa o google
LOCAL aHosts
cAddress := If( Empty( cAddress ), "www.google.com", cAddress )
InetInit()
aHosts := InetGetHosts( cAddress )
InetCleanup()
RETURN ( ! Empty( aHosts ) )
//--------------------------------------------------------------------------
Funciona mas, alguém sabe quais funções tem no Harbour no lugar destas do xHarbour: InetInit(), InetGetHosts() e InetCleanup()?
Só para não ter que linkar a xhb.hbc.
COMANDO HARBOUR PARA SABER SE TEM INTERNET
Enviado: 14 Jul 2021 22:36
por ANDRIL
Eu uso assim, as funções são do harbour uso a 3.2 atualmente.
? temInternet() //retorna .t. ou .f.
Abraços
Código: Selecionar todos
********************************************************************************
FUNCTION temInternet()
********************************************************************************
LOCAL string:="", cBai:="http://www.google.com", oHttp
oHttp:=TIpClientHttp():New(cBai)
if oHttp:open()
/* pode haver uma demora na leitura, por isso este 'for' */
for i=1 to 5
string:=oHttp:readAll()
if !empty(string)
exit
endif
millisec(200)
next
oHttp:close()
else
return .f.
endif
if !"ESTOU COM SORTE"$upper(string)
return .f.
endif
return .t.
COMANDO HARBOUR PARA SABER SE TEM INTERNET
Enviado: 15 Jul 2021 12:33
por alxsts
Olá!
Obrigado Andril.
Funciona. Retorna todo o código fonte da página inicial do Google mas depende da língua do local onde está executando, o que pode ser um inconveniente. Achei melhor a opção que usa funções do xHarbour. Ainda falta ver a CURL...