Recupere et afficher la date d'un serveur NTP

greg290184 - 4 sept. 2012 à 23:29
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 - 5 sept. 2012 à 14:26
Bonjour,

Je suis debutant,je travail sur visual studio 2008, je souhaiterai récupérer la date d'un serveur NTP public sur Internet pour ensuite interdir l'execution d'une fonction a une date donnée, je m'explique, j'ai un petit programme qui fait office de client TCP/IP qui se connect sur un serveur pour lui envoyer des commandes, on saisi l'ip du serveur dans une textbox puis on clique sur le bouton "connecter" si la connexion est OK on peux taper des commande et on deconnecte automatiquement aprés 3 min et je souhaiterai que le 1/01/2013 lorsqu'on clique sur sur le bouton de connection on est un message du type "Contactez moi"

C'est possible ?

Merci

7 réponses

Utilisateur anonyme
4 sept. 2012 à 23:37
Bonjour,

Pourquoi ne pas vérifier la date et l'heure avant de se connecter ? Si c'est une question de décalage horaire, tu peux facilement utiliser le temps universel coordonné à partir des classes DateTime() et TimeSpan()
Utilisateur anonyme
4 sept. 2012 à 23:46
Bonjour,

De toutes façons Windows est configuré d'office pour mettre automatiquement à jour l'horloge du PC à partir d'une horloge atomique. Si ton patron n'a pas confiance en Windows, il y a un tas de petits utilitaires qui peuvent le faire à la place de Microsoft. J'ai l'impression que ton patron t'a posé un lapin de la pire espèce.
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 sept. 2012 à 01:00
Salut

Non, c'est parce que, manuellement, on peut retoucher à l'heure/date et que la remise à l'heure précise n'aura lieu que dans X minutes, voire heures.
Donc, si l'utilisateur veut bidouiller l'horloge pour réussir à faire fonctionner le programme, la 'protection' n'est plus efficace.

Pour interroger un serveur NTP, il faut la bonne demande (surement facile à retrouver), mais surtout chronométrer le temps de l'aller et du retour de l'info afin d'ajuster correctement l'horloge.
Dans ton cas, les pouillèmes de secondes ne semblent pas t'intéresser.
D'après les multiples sources VB6 (lisibles avec NotePad) sur le sujet NTP, il suffit de faire une demande de connexion sur le port 37 d'un serveur (il en existe beaucoup) et de décoder le résultat. Là aussi, les explications sont dans les sources.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Bonjour,

Merci pour vos réponses, si il y a un décalage dans l'heure ce n'est pas grave je n'ai pas besoin d'une précision extrême, en faite je souhaiterai juste que mon appli soit inutilisable a une date donnée, c'est parce que mon patron est entrain de me pousser a la démission et qu'il utilise une appli que j'ai développé chez moi en dehors des heures de travail (j'étais naïf a l'époque ou je lui donné le soft...) et qu'il refuse de me rémunérer pour ça, du coup je voudrai qu'après mon préavis j'arrête de l'enrichir...et surtout qu'il ne puisse pas contourner ca en modifiant la date du PC.
Mais gagner du temps j'aurai besoin d'un bout de code !!!

Merci

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
5 sept. 2012 à 09:40
Bonjour,

Je te comprends ...
2 choses :
1°) As-tu donné les codes sources ?
2°) Si oui : il pourra toujours faire des modifications, sinon tu peux mettre la date en dur dans ton code (pas très joli mais ça marche) voire mieux dans un fichier externe (nomme la au format DLL afin d'enlever tout soupçon) et lorsque tu atteints cette date modifie la DLL avec une date du style : 01/01/1789

Bonne chance
Je n'ai pas donné les sources, en réalité le développement n'a rien a voir avec mon métier, donc ce n'est pas dans mon contrat de travail et en plus j'ai développé en dehors des heures de travail c'est donc ma propriété intellectuel !!! Le problème est que l'appli est en production et est utilisée tous les jours 24h/24 7j/7, je peux prétexter une maj mais le supprimer purement et simplement c'est pas possible?
Je pense voir l'idée :
Lorsque je clique sur mon bouton "connecter", je vais chercher la date sur un ntp et puis je la compare a la date que j'ai programmé en dur dans le code si la date est dépassée je ferme l'appli sinon je me connecte normalement

Le truc c'est comment récupérer la date sur un ntp, il ne me manque que se bout de code, je ne trouve rien sur les forums, et là je suis juste timing?

dans le pire des cas j'utiliserai la date du PC ca va passer comme ça...
guilleto Messages postés 256 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 20 mars 2013 1
5 sept. 2012 à 14:26
Pour ta mise à jour :
1°) Vérification de la présence d'un fichier externe crypté
2°) Si pas de fichier : Sortir du programme
3°) Si le fichier : tester la date contenu dans le fichier par rapport à la date PC
4°) Si la date n'est pas passée alors : fonctionnement normal
5°) Si la date est passée, modifier la date dans le fichier externe crypté en remplaçant par exemple par 01/01/1789

Attention !
Il faut toutefois faire une écriture sur le fichier externe même si la date est bonne pour éviter tout soupçon !
Rejoignez-nous