PEGAR HORA ONLINE

MAXCIM 16/06/2016 12:20:10
#463619
Olá amigos,

tenho tido alguns problemas com emissão de NFE pro problemas na Hora.
eu já utilizo um processo de sincronizar hora com o servidor local, porem em alguns clientes o servidor tbm esta com hora errada ( hora errada, data errada, horário de verão errado)

gostaria de saber se alguém sabe de algum meio de pegar hora online, assim poderei comparar com hora local e emitir um alerta que esta errada.


desde já agradeço.
NILSONTRES 16/06/2016 16:52:30
#463641
Nossos sistemas conferem uma pagina ASP no servidor web e altera no pc.
Caso se interesse posto a forma.
KERPLUNK 16/06/2016 18:40:19
#463657
Resposta escolhida
O que deveria ser feito é a sincronização com algum serviço de NTP(Network Time Protocol), que está disponível gratuitamente.
MAXCIM 16/06/2016 20:51:52
#463675
kerplunk. o NTP resolveria, porem tenho que solicitar que o cliente configure seu servidor e tenho certeza que não o fará.

nilsontorres, se houver uma maneira de sincronizar ou comparar os times direto no aplicação seria bem util.


grato a todos
KERPLUNK 16/06/2016 20:59:26
#463676
Então force o cliente à fazer direito. Faça com que seu sistema faça isso por ele.
NILSONTRES 17/06/2016 00:41:46
#463700
Meus sistemas não busca hora de servidor interno, busca só servidor web, assim como vc quer.
caso o usuário tente alterar o horário no pc o sistema fecha e quando abre, novamente acerta o horário web.
Crie uma pagina asp tradicional simples, o sistema recebe o retorno dela.

crie uma asp suapaginaasp.asp
só com esse código.
<%response.Write Now%>

[ô]isso abaixo vc coloca ao iniciar seu sistema
AddHandler Microsoft.Win32.SystemEvents.TimeChanged, AddressOf MudouHora


Public Function ACERTA_RELOGIO() As Boolean
Dim myHttpWebRequest As HttpWebRequest = WebRequest.Create([Ô]http://www.seudominio.com.br/suapaginaasp.asp[Ô])
myHttpWebRequest.Timeout = 10000
Dim myHttpWebResponse As HttpWebResponse = myHttpWebRequest.GetResponse()
Dim recvStream As Stream = myHttpWebResponse.GetResponseStream()

[ô] le o stream no formato [Ô]utf-8[Ô]
Dim encode As Encoding = System.Text.Encoding.GetEncoding([Ô]utf-8[Ô])
Dim readStream As New StreamReader(recvStream, encode)
Dim sPagina As String = [Ô][Ô]

While (readStream.Peek() > -1)
sPagina += readStream.ReadLine() + vbCrLf
End While

[ô]Label1.Text = Format(CType(sPagina, Date), [Ô]dd/MM/yyyy HH:mm:ss[Ô])


TimeOfDay = CDate(Mid(Format(CType(sPagina, Date), [Ô]dd/MM/yyyy HH:mm:ss[Ô]), 12, 8))
Today = CDate(CDate(Mid(Format(CType(sPagina, Date), [Ô]dd/MM/yyyy HH:mm:ss[Ô]), 1, 10)))
End Function


Public Sub MudouHora(ByVal Sender As Object, ByVal e As System.EventArgs)
MsgBox([Ô]A Data e ou Horário do computador foram alterados, O sistema será fechado por medida de segurança[Ô], MsgBoxStyle.Critical, [Ô]MUDANÇA EM DATA OU HORÁRIO[Ô])
ACERTA_RELOGIO()
oCn_MYSQL.Close()
oCn_MYSQL.Dispose()
Application.Exit()
End Sub

Depois disso tente alterar a hora de seu pc.
Se alterar com o seu sistema fechado, quando ele iniciar acertara novamente, fechou o cerco, o usuário não mais tem esse poder, ou melhor, seu sistema estará seguro que não ira trabalhar com hora errada.
Não sei se mais alguém faz isso, nunca passei para ninguém, e tem sido eficiente por mais de 5 ou 6 anos.
NETVOO 17/06/2016 01:50:51
#463709
Pessoal só uma dúvida e quando não tem web como vocês fazem esse tratamento.
Pergunto pois fiz esse tratamento não para alterar a data e hora do pc mais sim para meu sistema coletar e usar a data e hora do ntp usando C#.
Mas e na falta da internet, ou tentativa de burlar sistema de licenciamento de nossos sistemas controlados por data.
NILSONTRES 17/06/2016 10:05:58
#463716
Citação:

Pessoal só uma dúvida e quando não tem web como vocês fazem esse tratamento.
Pergunto pois fiz esse tratamento não para alterar a data e hora do pc mais sim para meu sistema coletar e usar a data e hora do ntp usando C#.
Mas e na falta da internet, ou tentativa de burlar sistema de licenciamento de nossos sistemas controlados por data.


Caso não haja internet o sistema detecta e abre a tela de confirmação de horário pelo Usuário, esse era o sistema antigo, mas os usuários pegam vicio e dão ok no horario apresentado na tela sem olhar na verdade, por isso agora só via web. mas nesse caso a tela de confirmação é apresentada.
Tópico encerrado , respostas não são mais permitidas