begin process at 2013 06 19 09:41:45
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > TESTE LA CONNEXION INTERNET ET DIT QUOI FAIRE

TESTE LA CONNEXION INTERNET ET DIT QUOI FAIRE


 Information sur la source

Note :
8,5 / 10 - par 4 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Classé sous :ping, connexion, internet, modem, indy Niveau :Débutant Date de création :05/06/2006 Date de mise à jour :04/08/2006 05:17:28 Vu / téléchargé :27 521 / 2 285

Auteur : ekinoxjp

Ecrire un message privé
Commentaire sur cette source (27)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Si vous avez comme moi un papi ou une mamie qui ont toujours les mêmes problèmes pour se connecter sur Internet. Voici un programme simple pour des problèmes simples. Il teste la connection et dit quoi faire en fonction du problème rencontré.

Les instructions et marches à suivre sont adaptés pour le modem Zyxel Prestige 623 ME et les réponses sont celles que j'ai du déjà le leur donner à plusieurs reprises. Il suffit de mettre vos propres instructions à la place.

Le programme est optimisé pour fonctionner avec les modems routeurs et fonctionne aussi avec les modems USB.


 Conclusion

Le programme utilise un composant Indy pour le ping.

Si vous ne possédez pas Delphi, voici un lien pour télécharger le programme déjà compilé:
http://ekkinoxx.free.fr/utilities/Diagnos tiqueInternet.zip

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

05 juin 2006 23:19:17 :
Suite aux divers feedback, le programme à été adapté (enfin je l'espère^^) aussi aux modems USB :)
06 juin 2006 20:22:32 :
Beau travail d'optimisation et réparation des bugs effectué par Cirec. Merci beaucoup! ;-)
06 juin 2006 20:47:05 :
Gros travail d'optimisation du code source effectué par Cirec. Merci beaucoup! ;-)
06 juin 2006 22:08:43 :
Les composants ont été renommés dans le but d'améliorer la lisibilité. hum j'ai posté deux fois la même source précèdante. Je pensais avoir perdu la page sans même vérifier. hum.. C'est surement la fatigue. oops :)
06 juin 2006 22:30:53 :
Petit bug réparé.
06 juin 2006 22:39:15 :
correction de quelques commentaires
12 juin 2006 13:37:55 :
Petite modif pour pouvoir personnaliser les messages d'erreures sans avoir besoin de compiler le programme.
04 août 2006 05:17:28 :
correction de fautes d'ortho

 Sources du même auteur

Source avec Zip Source avec une capture VOLUMESYSTRAY: OUVRIR SNDVOL32.EXE PLUS RAPIDEMENT QUE WINDO...
Source avec Zip Source avec une capture PROXY SELECTOR - PRATIQUE SI VOUS UTILISEZ PLUS D'UN PROXY
Source avec Zip Source avec une capture RECHERCHER ET TROUVER RAPIDEMENT UN MOTS (OU UN CONTACT)
Source avec Zip Source avec une capture ACCEDER RAPIDEMENT À VOS INFORMATIONS (SÉCURISÉES OU PAS)

 Sources de la même categorie

Source avec Zip Source avec une capture ANALYSE DE LA QUALITÉ D'UNE CONNEXION À L'AIDE DU PING par John Dogget
Source avec Zip Source avec une capture PASSERELLE MODBUS-TCP S7 VIA NODAVE par brunovan
Source avec Zip Source avec une capture PETITE APPLICATION DE TCHAT DANS UN RÉSEAU LOCALE par benimen
Source avec Zip Source avec une capture LOG DE PING POUR SURVEILLER LA QUALITÉ D'UNE CONNECTION par PhilLU
Source avec Zip GET IP AVEC INDY par Gerard

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture ANALYSE DE LA QUALITÉ D'UNE CONNEXION À L'AIDE DU PING par John Dogget
AFFICHER, TELECHARGER DES IMAGES SE TROUVANT SUR INTERNET DA... par Mokost
Source avec Zip Source avec une capture WEBCAM+ MICROSERVEUR HTTP = WEBCAM IP (INDY 9 ET INDY 10) par jlen100
Source avec Zip Source avec une capture TÉLÉCHARGEMENT DE MISES À JOUR AVEC INDY par Matt 261
Source avec Zip Source avec une capture IP INTERNET VIA UNE CONNEXION RÉSEAU - RÉCUPÉRER UNE IP DANS... par japee

Commentaires et avis

Commentaire de yvessimon le 05/06/2006 09:05:25


Fonctionne-t-il sur un réseau intranet ?

Commentaire de fjohnny le 05/06/2006 09:45:44

YvesSimon:
D'aprés ce que j'ai vu dans le code et l'explication qu'a donné ekinoxjp, si tu as une passerelle ou un routeur sur l'adresse x.y.z.1 (où x, y,z correspondent aux 3 premiers octects de ton adresse IP) alors la détection du modem sera OK. Par contre suivant la façon dont ton réseau Intranet est structuré (si tu as une connection directe à l'internet via ton réseau Intranet) alors la connection internet fonctionnera aussi.

Salutations.

Commentaire de Matt 261 le 05/06/2006 10:38:59

Salut tout le monde,

moi j'ai un problème, je suis connecté à Internet via un modem donc jusque là OK mais quand je test si je suis connecté avec ton soft il me dit :
"Vérifier que le modem est bien allumé et que le cable est bien branché.
Si non redémarrer l'ordinateur." pourtant tout est bon (la preuve je suis entrain de mettre un commentaire sur ta source ;-) ).

Commentaire de Francky23012301 le 05/06/2006 11:54:14

Salut,

Idem que Matt et pourtant la je suis entrain de t'écrire. Petit conseil : l'utilisation du Timer est inutile une simple boucle aurait fait l'affaire.

A+

Commentaire de cirec le 05/06/2006 12:01:29 administrateur CS

Salut,
Alors chez moi tout fonctionne très bien.
Modem BeWan

la seule chose que je trouve bizarre c'est qu'il ait besoin d'une connexion établie à Internet pour me dire que tout fonctionne ???? ;-)

L'outil de diagnostic fournis par mon F.A.I. me détecte mon modem et sans être connecté à Internet (sauf si un câble est débranché bien sûr)

Pour le code je regarderais plus tard

@+
Cirec

Commentaire de ekinoxjp le 05/06/2006 12:58:43

Salut tout le monde!
Merci pour vos feedback, je vais essayer de répondre au mieux :)

Si la détection du modem ne fonctionne pas, je pense que soit le modem ne répond pas aux ping, soit l'adresse IP du modem est faussé par une autre carte réseau (est-ce que vous avez plusieurs cartes réseaux?). Dans ce cas, vous pouvez spécifier vous même l'adresse du modem dans la procedure FormCreate.

Pour Francky23012301 :)
J'ai plusieurs raisons pour lesquels j'ai utilisé un Timer, la première c'est pour garder la main sur le programme (si non tout Freeze), la seconde c'est pour qu'il puisse y avoir une petite animation en attendant la réponse du ping. A la limite, j'aurai pu utiliser un Thread :)

Pour cirec,
Si je test la connection Internet en fesant un ping sur un DNS de free, c'est parce que Papi et Mamie ont la chance d'avoir une femme de ménage qui vient une fois par semaine et qui arrache à chaque fois les fils du modem au téléphonne. Si je m'arrête seul au test du modem et n'effectue pas le test Internet, le programme ne sera pas en mesure de les aider à résoudre leur problème.

Je sais que si Papi et Mami m'appellent, ce ne sera pas pour des problèmes aussi basiques qu'un simple câble débranché (m'est déjà arrivé plusieurs fois). Voilà ;-)

Commentaire de Francky23012301 le 05/06/2006 15:31:19

Re,

Merci pour l'explication du timer ;)
Par contre j'ai un Modem BeWan aussi et le meme FAI que Cirec (je crois ^^) donc je comprends pas pk ca ne fonctionne pas

@+

Commentaire de cirec le 05/06/2006 16:16:30 administrateur CS

Salut Francky,

Oui il me semble effectivement qu'on aient le même FAI
mais chez moi je dois établir la connection Internet pour pouvoir utiliser le programme, mais ça je pense que tu as déjà testé.

ps : Source compilé sous D2005 avec Indy10
@+
Cirec

Commentaire de ekinoxjp le 05/06/2006 22:28:41

hum,
Question toute simple, si elle ne l'est pas, dites-le ;-)

Quand vous faites un ping du modem dans la commande DOS est-ce que ça répond bien?

Si vous obtenez une réponse du ping, pourriez-vous me donner l'adresse IP du modem?

Je vais faire ce que je peux pour que ça fonctionne aussi chez vous :)

Commentaire de ekinoxjp le 05/06/2006 23:31:35

Ah j'ai compris votre problème!
Enfin je le dévine ^^
C'est Francky qui m'a mis la puce à l'oreil. :)
Vous avez un Modem BeWan "en USB" (et non en Ethernet) et donc le modem ne répond pas aux pings.

Ce n'est pas un problème, car la fonction "ipconfig" (du programme) permet de deviner s'il le modem USB est allumé ou pas (si l'ipconfig retourne 127.0.0.1 alors le modem USB est éteint)

J'ai modifié le programme pour qu'il soit compatible avec les modems USB. J'espère que ça va marcher :)

Commentaire de cirec le 05/06/2006 23:45:45 administrateur CS

Stooooooooop

Moi aussi j'ai un BeWan sur port USB et tout fonctionne

Donc c'est pas la bonne piste
@+
Cirec

Commentaire de cirec le 06/06/2006 00:49:38 administrateur CS

Bon alors j'ai testé la nouvelle mouture
et maintenant le modem est détecté même si la connection à Internet n'est pas établie

Donc bravo tu as réussi

Du coup, francky, chez toi ça devrait également fonctionner

Mais voilà une petite ombre au tableau ;-)
le prog coince et ne se termine plus

J'ai donc apporté une petite modification au code que voici :

{La procédure MessageErreur n'avait pas de problème mais faut la déplacer avant la procédure TimerTimer pour pouvoir l'utiliser dans cette dernièrre}
// Messages d'erreurs
Procedure MessageErreure();
begin                      // Faire appel à unit1 n'est pas utile
  Form1.Label1.Caption := 'Probleme avec '+{Unit1.}Noms[{Unit1.}AdresseActuelle]+'  (cliquez ici pour tester à nouveau)';
// pas besoin de vider le Mémo SetTextBuf le fait
  //Form1.Memo1.Clear;
  // Si erreure à la tentative du modem
  if AdresseActuelle < 2 then
    Form1.Memo1.SetTextBuf('Solution:'+#13+#10+'Vérifier que le modem est bien allumé et que le cable est bien branché.'+#13+#10+'Si non redémarrer l''ordinateur.')
  else // Si erreure à la tentative sur Internet
    Form1.Memo1.SetTextBuf('Solution:'+#13+#10+'S''il y a une lumière orange sur le modem alors redémarrer l''ordinateur et le modem.'+#13+#10+'S''il n''y a pas de lumière orange, alors attendre 30 secondes qu''elle s''allume.'+#13+#10+'Si toujours pas de lumière orange alors vérifier que le modem est correctement branché à la prise téléphonique.');
end;


{Procédure Timer1Timer après MessageError}
// Effectue un ping
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := false;
  ICMP.ReceiveTimeout := 3000;
  try
    ICMP.Host := AdressesIP[AdresseActuelle];
    ICMP.Ping;
    Application.ProcessMessages;
{Ici on change pour Except ce qui permet en cas d'erreur d'eviter que le prog frize on Disable les deux timers puis on affiche MessageErreur}
  Except
    Timer1.Enabled := False;
    Timer2.Enabled := False;
    MessageErreure;
  end;
end;

Bonne prog

@+
Cirec

Commentaire de Francky23012301 le 06/06/2006 01:10:06

Salut,

Tout fonctionne : bon travail

A+ et merci pour la modif ;)

Commentaire de cirec le 06/06/2006 03:03:49 administrateur CS

Dernière modification (je pense):-)

pour commencer sais-tu que tu peux initialiser les variables globales ?

...
var
  Form1: TForm1;
  Noms: array[1..2] of string = ('le modem', 'Internet');
  AdressesIP: array[1..2] of string;
  AdresseActuelle: integer = 1;

Implementation

...
// du coup dans OnCreate de la form :
procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Clear;
{plus besoin d'initialiser AdresseActuelle}
  //AdresseActuelle := 1; // 1.modem   2.internet
  // Pour éviter d'écrire les choses deux fois, j'ai utilisé des tableaux
  // On ping en premier le modem et ensuite sur Internet
{et plus besoin d'initialiser Noms}
  //Noms[1] := 'le modem';
  //Noms[2] := 'Internet';
  AdressesIP[1] := IPduModem(IPconfig)+'1';   // Première adresse: ip du modem
  AdressesIP[2] := '212.27.32.5';         // Seconde adresse: IP du DNS de free.fr
  // Conseil: Mettre si possible une addresse ip au lieu d'un nom de domaine www
  // ceci pour éviter des messages d'erreures lorsque celui-ci ne répond pas.
end;

{ensuite pour préserver l'affichage des couleurs jusqu'au bout
Il faut à nouveau déplacer la procédure ChangeCouleur(Etat:Boolean); pour la placer avant Timer1Timer
Et modifier le code comme suit :
}

// Affecte la couleur aux fils (vert ou rouge)
procedure ChangeCouleur(Etat:Boolean);
var
  couleurs: Tcolor;
begin
   if Etat then couleurs := clLime // vert
   else         couleurs := clRed; // rouge
   // Affecte la couleur au fil actuel
   //si modem est Ok et Internet non la ligne reste verte pour le modem
   // avant ce n'était pas le cas
   if AdresseActuelle = 1 then Form1.Label2.Color := couleurs
   Else
   Form1.Label3.Color := couleurs;
end;


// Effectue un ping
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := false;
  ICMP.ReceiveTimeout := 3000;
  try
    ICMP.Host := AdressesIP[AdresseActuelle];
    ICMP.Ping;
    Application.ProcessMessages;
  Except
    on E: Exception do
    Begin
    Timer2.Enabled := False;
    ChangeCouleur(False); // Affiche en rouge la non connection
pour connaitre le texte du message d'erreur activer la ligne suivante
//    ShowMessage(E.Message);
    MessageErreure;
    End;
  end;
end;


Ensuite peut tu expliquer le code suivant ?:
Var
   sTime: string;
  TempsDeReponse: integer;
begin
  sTime := '';
  //TempsDeReponse en 'ms'
  TempsDeReponse := strtoint(Format('%s%d',[sTime,AReplyStatus.MsRoundTripTime]));

est ce bien utile de faire un transtypage ici ?

TempsDeReponse := AReplyStatus.MsRoundTripTime;
Devrait donner le même resultat

Voilà c'est tout

@+
Cirec

Commentaire de cirec le 06/06/2006 03:36:06 administrateur CS

Ben ouais ...
jamais deux sans trois  (lol)

Dans les clauses Uses tu peux également retirer ces unités :

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, IdBaseComponent, IdComponent, IdRawBase, IdRawClient, IdIcmpClient
//celles qui suivent
{, IdUDPBase, IdUDPClient, IdDNSResolver};


Et aussi plus loin :
uses {Shellapi,} WinSock;

En tout cas ton code me plait je le trouve simpa, tu as fait l'éffort de commenter ton code ça c'est très bien.
Si tu nommais tes composants ta source serait encore plus facile à lire (pour toi comme pour nous)

Et pour finir la présentation a été soigné
pour toutes ces raisons et pour t'encourager à continuer
je met un 8/10

Bien, bonne continuation
@+
Cirec

Commentaire de ekinoxjp le 06/06/2006 10:03:38

wow Cirec! Tu cartones! ^^
Je ferais ces modifs dès que je rentre ce soir (Je suis au boulot en ce moment^^)
En tout cas joli travail :)
Tu m'as appris des astuces bien utiles, je te remerci beaucoup! ;-)

Commentaire de sergejb le 06/06/2006 10:36:55

Tout fonctionne bien, avec les derniers commentaires intégrés. J'ai un réseau local sur un modem routeur olitec SX200. Le test est correct, la détection des pannes aussi, le tout compilé en D6.
Très bonne source.Il n'y a pas que les grands parents qui peuvent être intêressés, je connais des blondes...! Bravo

Commentaire de ekinoxjp le 06/06/2006 20:50:17

Voilà le code source à été mis à jour :)

Serge, quel hasard,
ma Mamie est blonde.
Mort de rire ^^

Commentaire de marie_candice le 12/06/2006 08:31:44

heu... je ne suis pas blonde, mais... une fois que j'ai téléchargé les 4 fichiers, je fais QUOI ?

Commentaire de sergejb le 12/06/2006 09:14:56

Pour Marie-Candide
Et ben tu compiles le projet avec D6 ou équivalent selon affinités.
Et tu ouvres l'exe obtenu.
Clin d'oeil !

Commentaire de marie_candice le 12/06/2006 09:23:17

ah oui, ok, faut avoir delphi...
et si on a pas delphi, on ne peut pas avoir l'exe, donc...
(j'ai arrêté de faire des mèches blondes, mais je sens que ça blondit, ça blondit.... tout doucement...)

Commentaire de sergejb le 12/06/2006 09:47:07

Pour Marie-Candide
Ben oui il vaut mieux. Les exe ne figurent plus dans les zip (et c'est bien) pour cause de place, et autres inconvénients. Mais si tu veux un exe demande ça à EquinoxJp (avec un tit mail) qui se fera un plaisir sans  doute.
Bises (et pas de craintes, nous avons tous nos mèches !)

Commentaire de ekinoxjp le 12/06/2006 13:47:24

Si je te le file compilé, tu ne pourra pas personnaliser les messages d'erreures.

J'ai donc fait une modif pour qu'on puisse modifier les messages d'erreures sans avoir besoin de compiler.

Et voici un lien pour télécharger le programme déjà compilé ;-)

http://ekkinoxx.free.fr/utilities/DiagnostiqueInternet.zip

Commentaire de mcapp le 13/06/2006 18:49:49

Bravo pour ce programme !
Une remarque : si je débranche mon modem-routeur SpeedTouch d'Aol, je n'ai plus la connexion internet. Pourtant ton programme annonce : internet OK.
Il décèle sans doute mon réseau local qui continue à fonctionner, mais ne devrait pas annoncer : Internet OK.
As-tu une réponse pour ce point ?
Autre remarque qui ne te vexera pas, je l'espère :
"Cliquer ici pour un diagnostique de la connection internet" s'écrit en réalité : "Cliquer ici pour un diagnostic de la connexion internet" (c'est seulement pour t'aider : faire encore plus sérieux et fini !)
Encore Félicitations !
Mcapp

Commentaire de ekinoxjp le 04/08/2006 04:52:27

Merci pour la faute d'ortho, vais corriger ça ^^

Si non effectivement c'est bizzare que ça te dit ok alors que ça ne l'est pas. C'est étonnant, je n'arrive pas à produire cette erreure chez moi. Je suis derrière un modem routeur Netgear et ça marche aussi bien que sur le Zyxel de ma grand mère. Est-ce que tu as compilé le prog ou tu l'as piqué déjà tout prêt? Est-ce que tu reçois une réponse quand tu fait un ping sur 212.27.32.5 avec le cable d'ébranché ? Si ça se trouve ton modem répond à la place pour dire que c'est pas bon (étonnant mais j'aurais tout vu).

Commentaire de cincap le 23/03/2010 19:00:24

Bonsoir à toutes et à tous,

Je sais que c'est un peu tard par rapport au topic mais cela ne fonctionne pas logiquement sur Vista.

Le code se compile bien avec D6

Lors du test avec un modem routeur usb de marque Philips série 6000, le logiciel estime que la connexion "ordinateur modem" est Ok et par contre la connexion "modem internet" est corrompue, ce qui n'est pas correct en réalité.

Au cas ou quelqu'un aurait aussi détecté cette anomalie.

@+,

Cincap

Commentaire de p007tod76 le 10/01/2011 12:08:19

Bonjour
Je tombe par hasard (et bien tard sans doute sur ce post) mais à tout hasard ...

Il faut changer dans FormCreate
AdressesIP[2] := '212.27.32.5';         // Seconde adresse: IP du DNS de free.fr  
par
AdressesIP[2] := '212.27.54.252';         // Seconde adresse: IP du DNS de free.fr

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

services et eventlog: service pour surveiller une connexion à internet [ par hendrix ] Bonjour à tous,J'ai fait un service (pour NT et XP) qui fait un ping régulier (via le composant ICMP d'indy). Je gère les exceptions lorsqu'un ping se Tester une connexion de modem [ par Isabelle31 ] Bonjour à tous,J'essai de tester une connexion de modem, mais je n'y arrive pas.Pour mon application je veux utiliser un modem externe, alors que j'ai Problème avec un modem [ par Isabelle31 ] Bonjour à tous,Je sais que ma question peut parraître stupide, mais je n'arrive pas a voir comment depuis Delphi, je dois faire pour lancer une connex Connexion Internet [ par koaiz ] HugY a t-il Un moyen fiable de detecter la connexion modem ou adsl sous NT et 9X J'ai tester les fonctions proposer mais il ne sont pas fiable elles débloquer connexion internet [ par josswel ] bjr j aimerai savoir comment peut on enlever une protection de connection a internet si on n a pas les droit d admnistrateur ? c' est possible ? merci Comment connaître le débit de ma connexion internet [ par yokochimada ] Salut à tous!je voulais savoir s'il existait un source delphi qui permet de connaître le débit entrant de ma connexion internet, et aussi détecter le connexion à un site internet via le programme [ par pierrecoulon ] bonjour à tous,serait-il possible de faire apparaitre une nouvelle fenêtre avec une connexion internet et appuyant sur un bouton dans le programme?mer Indy (idIRC) [ par l0sth34d2 ] Bonjour!Je suis entrain de faire un client IRC et à présent tout marche pour le mieux mais je n'ai qu'un seul problème, le PING sur un autre utilisate type de connexion internet [ par cybersky ] Salut &#224; tous les d&#233;veloppeurs, Voil&#224; ma question est simple mais peut &#234;tre pas le code : Function TestConnect: Boolean; Var &nb IdHTTPServer depuis internet [ par ytillang30400 ] Indy 9 :Je place un composant IdHttpServer et dans l'&#233;v&#232;nement OnCommandGet, j'entre par exemple&nbsp;le code : AResponseInfo.ContentText :=


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juin 2013
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales