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 :

tester si un ordi est connecté au net


Sujet :

Web & réseau Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chercheur - Programmeur amateur
    Inscrit en
    Août 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur - Programmeur amateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2005
    Messages : 65
    Points : 39
    Points
    39
    Par défaut tester si un ordi est connecté au net
    Bonjour à tous amis programmeurs.

    Je développe une appli et je souhaiterais, au démarrage, déterminer si le poste sur lequel cette appli s'exécute est connecté à internet ou non, que ce soit par modem (si ca existe encore), ou via une box ou un LAN d'entreprise (bref, quelle que soit la configuration possible.
    Après avoir fureté sur le forum ici et sur d'autres sites, j'en suis vite venu à la conclusion logique que la meilleure facon de faire est de pinger un site et de vérifier si ca passe ou pas.

    J'ai cru trouver mon bonheur ici : http://delphi.developpez.com/faq/?pa...ne_ip#indyping
    mais problème, il faut les droits admin sur NT/2000/XP/vista/Seven sous peine de recuperer une erreur : Access Denied Error (Socket Error #10013) during runtime (class EIdSocketError).

    J'ai également testé ca : http://www.delphi-central.com/tutorials/icmp-ping.aspx
    Mais ca ne fonctionne pas non plus car j'ai des pb liés à l'unicode de delphi 2009. Donc, sachant que les fonctions Fetch et TranslateStringToTInAddr existent déjà dans l'unité IdGlobal, j'ai essayé de simplifier, mais étant un pur débutant en programmation, qui pour ne rien arranger, est une bille en réseau, je suis totalement bloqué.

    Comment faire , simplement, et sans droit admin, un test de connexion?

    PS : la question semble simple, mais au vue du nombre de codes qui ne fonctionnent pas trouvés sur le net, la solution n'est p'tete pas si simple

    Merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Salut;

    si tu es sous windows tu peux utiliser la librairie URL.DLL, tu l'importes puis tu utilises la fonction InetIsOffline comme ceci :
    function InetIsOffline(Flag: Integer): Boolean; stdcall; external 'URL.DLL';
    le codage est assez simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if InetIsOffline(0) then
       ShowMessage('Vous êtes connectés à Internet!')
    else
       ShowMessage('Vous n''êtes pas connectés à Internet!');
    l'argument flag est toujours mis à 0.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chercheur - Programmeur amateur
    Inscrit en
    Août 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur - Programmeur amateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2005
    Messages : 65
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Just-Soft Voir le message
    Salut;

    si tu es sous windows tu peux utiliser la librairie URL.DLL, tu l'importes puis tu utilises la fonction InetIsOffline comme ceci :


    le codage est assez simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if InetIsOffline(0) then
       ShowMessage('Vous êtes connectés à Internet!')
    else
       ShowMessage('Vous n''êtes pas connectés à Internet!');
    l'argument flag est toujours mis à 0.
    Je viens d'essayer et bizarement, ca ne fonctionne pas. Ca me dit toujours que je ne suis pas connecté...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Parefeu ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chercheur - Programmeur amateur
    Inscrit en
    Août 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur - Programmeur amateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2005
    Messages : 65
    Points : 39
    Points
    39
    Par défaut
    oui mais non
    effectivement, c'est une très judicieuse remarque GoustiFruit, mais meme avec le par-feu desactivé, j'ai droit au "non connect"

    Bon, poussant un peu mes recherche, j'ai tenté ca :
    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
    29
    30
    31
    32
    function TForm1.Connected2: Boolean;
    var
      bconnect: boolean;
      httphandle: HINTERNET;
      openhandle: HINTERNET;
      connectionhandle: HINTERNET;
    begin
      bconnect:=false;
      openhandle := InternetOpen('PRM8', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
      if Assigned(openhandle) then
        begin
          try
            connectionhandle:=InternetConnect(openhandle,PChar('http://rapporteur.meteo.free.fr'),INTERNET_DEFAULT_HTTP_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,1);
            if Assigned(connectionhandle) then
              begin
                try
                  httphandle:=HttpOpenRequest(connectionhandle,nil,PChar('/PRM.html'),nil,nil,nil, INTERNET_FLAG_RELOAD, 1);
                  if Assigned(httphandle) then
                    begin
                      bconnect:=true;
                      InternetCloseHandle(httphandle);
                    end;
               finally
                 InternetCloseHandle(connectionhandle);
               end;
             end;
          finally
            InternetCloseHandle(openhandle);
          end;
        end;
      Result := bconnect
    end;
    et là c'est l'inverse... connecté ou non, je récupere 'true' comme resultat (donc connecté)

    c'est dingue ca...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 396
    Points : 640
    Points
    640

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Chercheur - Programmeur amateur
    Inscrit en
    Août 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur - Programmeur amateur
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2005
    Messages : 65
    Points : 39
    Points
    39
    Par défaut
    cette methode ne marche pas mieux je desespere

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Essaye de télécharger un petit fichier, si tu peux le récupérer, tu es connecté ;-)

  9. #9
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Salut

    Je sais que sous Delphi 2005, j'avais trouvé une fonction qui permettait de savoir le type de connection du PC (modem, etc.). Je la posterai des que je la retrouverai !

    Bonne chance sinon !

    Edit : Voila, je viens de trouver ... Je sais pas si ca te va : http://www.greatis.com/delphicb/tips...ctedstate.html

Discussions similaires

  1. [2.x] FosuserBundle tester si un utilisateur est connecté ou pas
    Par IAGISG dans le forum Symfony
    Réponses: 1
    Dernier message: 16/04/2014, 11h30
  2. Tester si lecteur réseau est connecté
    Par alexxx69 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/03/2007, 12h07
  3. Réponses: 14
    Dernier message: 07/07/2006, 16h27
  4. voir si un ordi est connecté au réseau ?
    Par devmat dans le forum C++
    Réponses: 7
    Dernier message: 13/09/2005, 18h03
  5. Fonction pour savoir si un ordi est connecté au reseau
    Par LitteulKevin dans le forum Windows
    Réponses: 17
    Dernier message: 13/09/2004, 14h12

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