IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Utilisation d'un ping sous Delphi XE6


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Par défaut Utilisation d'un ping sous Delphi XE6
    Bonjour

    Je développe actuellement des outils tablette sous Delphi XE6 (support Windows 8.1)
    Afin de m'assurer que les utilisateurs nomades ont bien la dernière version de l'exécutable, je génère sur un serveur un fichier texte qui contient simplement le N° de la dernière version en production
    L'application, à son lancement se connecte au serveur et récupère le contenu du fichier

    Plusieurs cas se présentent alors
    - les tablette sont pluggées sur leur dock, connecté au réseau par RJ45
    - les tablettes sont nomades mais connectées au WIFi de l'entreprise
    - les tablettes sont nomades mais connectée sà un WIFI lambda

    Je pensais donc faire un simple PING sur le serveur afin de vérifier que je pouvais accéder au fichier de version
    J'ai donc utilisé le code source de Claudius (trouvé sur ce forum sous la recherche Ping) mais les résultats ne sont pas au rendez vous
    cas N° 1 : en filaire : aucun PING
    cas N° 2 : en wifi de l'entreprise : aucun PING
    cas N° 3 : cas non testé pour le moment

    Complément d'information :
    - l'UAC est activé et ne peut être désactivé (prérogatives Système et Réseau)
    - la commande DOS ping fonctionne elle très bien

    Quid de la situation ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 938
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 938
    Par défaut
    Je ne vois pas l'intérêt du ping. Il va simplement indiquer que le serveur est actif mais pas s'il est en maintenance, le fichier ne sera peut-être pas accessible.
    Ici, la réponse au ping ne semble simplement pas être autorisée par le router/serveur.

    Le téléchargement (et éventuellement l'erreur reportée) me paraît suffisant.

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 094
    Par défaut
    le ping en DOS répond mais pas la version en Delphi,
    le code de Cl@udius utilise TIdIcmpClient, normalement Indy c'est efficace

    le ping en DOS tente peut-être plusieurs variantes de requête ICMP ou alors le paramètrage du TIdIcmpClient est insuffisant,
    je ne connais pas cette classe ayant utilisé directement de "IcmpCreateFile", "IcmpCloseHandle" et "IcmpSendEcho"
    Ce code est vieux et date de WinXP/Vista en client sur des servers 2K/2003
    Ce sujet sera l'occasion de l'intégrer a ma lib perso

    Comment sera récupéré le fichier de version par la suite ? HTTP File ? HTTP Rest/Soap ? FTP ? simple TCP/IP ?
    Tu peux aussi tenter l'accès mais avec un timeout très court pour gérer l'éventuel absence de réseau pour ne pas bloquer l'utilisateur
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre confirmé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Par défaut
    Pour répondre à ShaïLeTroll, je me contente de faire un assignfile et de lire la valeur
    Oui c'est tout pourri mais je n'ai pas estimé utile de downloader le fichier

    En complément d'information,
    - le code de Claudius fonctionne très bien sur mon ordinateur portable Windows 7 en réseau et WIFI
    - le code de Claudius ne fonctionne pas sur la tablette Windows 8.1 ni en réseau ni en WIFI, même en ayant déactivé l'UAC

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 094
    Par défaut
    OK,

    tes tablettes seront donc en VPN sur le réseau local lors de l'utilisation d'un WIFI lambda ?!

    Ah, 8.1, c'est surement lui le coupable !

    fichier "SLT.Common.ICMP.pas"
    Voir version plus récente

    l'utilisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    begin
      MemoPing.Lines.Clear();
     
      with TSLTICMPRequest.Create() do
      try
        MemoPing.Lines.Add(Format('Windows %d.%d', [Win32MajorVersion, Win32MinorVersion]));
     
        if Ping('localhost') then
          MemoPing.Lines.Add('Success - localhost')
        else
          MemoPing.Lines.Add('Error - localhost');
     
        if Ping('127.0.0.1') then
          MemoPing.Lines.Add('Success - 127.0.0.1')
        else
          MemoPing.Lines.Add('Error - 127.0.0.1');
     
        if Ping('www.google.fr') then
          MemoPing.Lines.Add('Success - www.google.fr')
        else
          MemoPing.Lines.Add('Error - www.google.fr');
     
        MemoPing.Lines.Add('Details :');
        MemoPing.Lines.Add(TextResult);
      finally
        Free();
      end;
    end;
    le résultat

    Windows 6.1
    Success - localhost
    Success - 127.0.0.1
    Success - www.google.fr
    Details :
    Ping sur localhost, Status : "The status was success.", Temps = 1ms, Message Reçu 1/1, TTL = 64
    Ping sur 127.0.0.1, Status : "The status was success.", Temps < 1ms, Message Reçu 1/1, TTL = 128
    Ping sur www.google.fr, Status : "The status was success.", Temps = 1ms, Message Reçu 1/1, TTL = 64
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre confirmé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Par défaut
    Bon ben ShaillTheTroll, je te dois une bonne bière alors
    Ca marche nickel
    Un gros merci à toi

  7. #7
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Citation Envoyé par mballasse Voir le message
    Je pensais donc faire un simple PING sur le serveur afin de vérifier que je pouvais accéder au fichier de version
    Je pose la même question d'Andnotor a quoi sert le ping sur le serveur ?
    Pourquoi ne pas accéder directement au fichier en question (avec une éventuelle gestion de time-out).

    Le fichier s'ouvre je récupère le numéro de version et éventuellement je fais une mise à jour le fichier ne s'ouvre pas on ne peut vérifier la version (que ce soit parce que le serveur est en maintenance, arrêté, ou parce que je ne suis pas connecté à un réseau peu importe..)

    Dans 5 ans pour des raisons de sécurités, l'administrateur réseau décide de bloquer les réponses aux ping. Votre application en déduira que vous n'êtes pas en réseau et n'essayera pas d'accéder à votre fichier (alors qu'il le pourrait)...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/09/2013, 14h05
  2. Utiliser une DLL Matlab sous Delphi
    Par airefrais dans le forum Langage
    Réponses: 4
    Dernier message: 24/07/2009, 10h16
  3. Utilisation des fichiers hlp sous Delphi 2007
    Par Esposito dans le forum EDI
    Réponses: 6
    Dernier message: 19/02/2009, 23h52
  4. Utilisation de class java sous delphi?
    Par loloryan dans le forum Delphi
    Réponses: 1
    Dernier message: 09/11/2006, 20h20
  5. [MYSQL] utilisation des TZ sous delphi possible?
    Par douill dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/03/2005, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo