COMANDO HARBOUR PARA SABER SE TEM INTERNET

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

Moderador: Moderadores

jadires
Usuário Nível 1
Usuário Nível 1
Mensagens: 11
Registrado em: 09 Jun 2016 08:50
Localização: Mossoró

COMANDO HARBOUR PARA SABER SE TEM INTERNET

Mensagem por jadires »

Olá galera.]


Alguém sabe os comando harbour para checar se tem internet ativa na cpu ? ?
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

COMANDO HARBOUR PARA SABER SE TEM INTERNET

Mensagem 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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

COMANDO HARBOUR PARA SABER SE TEM INTERNET

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
jadires
Usuário Nível 1
Usuário Nível 1
Mensagens: 11
Registrado em: 09 Jun 2016 08:50
Localização: Mossoró

COMANDO HARBOUR PARA SABER SE TEM INTERNET

Mensagem por jadires »

Muito Obg. Jairo Maia.

Me atendeu 100%
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

COMANDO HARBOUR PARA SABER SE TEM INTERNET

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

COMANDO HARBOUR PARA SABER SE TEM INTERNET

Mensagem 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.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

COMANDO HARBOUR PARA SABER SE TEM INTERNET

Mensagem 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...
[]´s
Alexandre Santos (AlxSts)
Responder