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

WinDev Discussion :

Ping adresse broadcast


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 149
    Points : 89
    Points
    89
    Par défaut Ping adresse broadcast
    Bonjour,

    Alors voilà mon problème, j'ai une liste d'IP à pinger mais le problème c'est que pour pinger ces adresses cela met beaucoup de temps!

    C'est pourquoi j'aurais voulu savoir si il était possbile de pinger l'adresse broadcast et voir qu elles IP sont atteignable. Je ne sais pas du tout si c'est possbile!


    merci de vos commentaires et de votre aide

  2. #2
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Plus un problème réseau que WinDev...
    Emmanuel Lecoester
    => joomla addict.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 70
    Points
    70
    Par défaut
    Pour répondre à cette question et au temps de réponse du ping voici une petite fonction maison.
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    // Syntaxe :
    //PING1 (<pAdresse> est chaîne [, <pBoucle> est entier [, <pTimeOut> est entier]])
    //
    // Paramètres :
    //	pAdresse (chaîne) : adresse IP
    //	pBoucle (entier - valeur par défaut=1) : nombre de ping
    //	pTimeOut (entier - valeur par défaut=250) : timeout du ping en ms
    // Valeur de retour :
    // 	Aucune
     
    PROCEDURE PING1(pAdresse est une chaîne,pBoucle est entier  = 1,pTimeOut est entier  =250)
    j est entier
     
    //exemple d'utilisation PING1(NetAdresseIP("www.free.fr"),100)
    //exemple d'utilisation PING1("192.168.1.14",1,1)
     
    XIpAdress est un entier sans signe
    XretVal est un entier
    XSize est un entier
    XhIcmp est un entier sans  signe
    Xerror est entier
    XVmoy est entier
    XReplyData est un entier sans signe
     
     
    IP_OPTION_INFORMATION est une structure
    	TTL est un entier sans signe sur 1 octet
    	Tos est un entier sans signe sur 1 octet
    	Flags est un entier sans signe sur 1 octet
    	OptionsSize est un entier sans signe
    	OptionsData est une chaîne fixe sur 128
    FIN
     
    IP_ECHO_REPLY est une structure
    	Address est un tableau fixe de 4 entier sur 1 octet sans signe
    	Status est un entier sans signe
    	RoundTripTime est un entier sans signe
    	DataSize est entier sans signe
    	Reserved est un entier sans signe
    	data est un entier sans signe
    	Options est un  IP_OPTION_INFORMATION
    FIN 
    XL_EchoReply est un IP_ECHO_REPLY
    XL_OptInfo est un IP_OPTION_INFORMATION
     
     
     
    XSize = Dimension(XL_EchoReply)
     
    XIpAdress = AppelDLL32("Wsock32", "inet_addr", pAdresse)
    SI XIpAdress = 0xFFFFFFFF ALORS 
    	Info("Adresse non conforme")
    	RETOUR
    FIN
     
     
    POUR j= 1 A pBoucle
    	XIpAdress = AppelDLL32("Wsock32", "inet_addr", pAdresse)
    	XhIcmp = AppelDLL32("icmp", "IcmpCreateFile")
    	XretVal = AppelDLL32("icmp", "IcmpSendEcho", XhIcmp, XIpAdress,Répète("A",32), 32, Null, &XReplyData, XSize, pTimeOut)
    	Transfert(&XL_EchoReply,&XReplyData,XSize)
    	SELON XL_EchoReply:Status
    		CAS 0 :
    			trace("Réponse de "+XL_EchoReply:Address[1]+"."+XL_EchoReply:Address[2]+"."+XL_EchoReply:Address[3]+"."+...
    			XL_EchoReply:Address[4]+" : Octets="+XL_EchoReply:DataSize+" temps="+XL_EchoReply:RoundTripTime+" ms"+" Satut :"+Remplace(XL_EchoReply:Status[[1]],0,"Ok"))
    			XVmoy+=XL_EchoReply:RoundTripTime
    		AUTRE CAS :
    			Xerror++
    	FIN
    FIN
    AppelDLL32("icmp", "IcmpCloseHandle", XhIcmp)
    Info("Succes : "+Val(j-1-Xerror),"Erreur : "+Xerror,"Vitesse Moyenne : "+PartieEntière(Val(XVmoy/(j-1))))

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Imaginons:
    Tu pingues un réseau complet.
    Tous les postes reçoivent donc le ping en même temps
    Tous les postes répondent donc à ton adresse IP en même temps.
    (selon le nombre de poste, ça peut faire un sacré nombre...)
    Maintenant essayes de savoir combien de collisions de paquets IP tu auras sur ton tronçon réseau avant de recevoir un paquet sur ton poste (rappel: collision = 2 paquets qui essayent de passer en même temps sur le même câble réseau)
    Ça donne la réponse à ta question: non, un ping multicast n'est pas possible.
    Pour info, tous les logiciels de découverte de réseau fonctionnent en pingant les adresses IP une à une, sur une plage déterminée. Plus la plage est grande et plus le traitement est long.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 70
    Points
    70
    Par défaut
    C'est possible sauf que je ne sais pas le faire sous Windows.

    Sur linux il suffit de faire :
    ping -b 192.168.1.255 ou ping -b 255.255.255.255

    sachant que les routeurs bloquent le broadcast, nous avons uniquement les machines du réseau.

    Concernant Windows, par défaut il ne répond pas à un ping broadcast, et il faut pour cela changer les paramètres de l'adaptateur réseau dans la base de registre (http://www.tech-faq.com/broadcast-address.shtml)

    Le plus simple est donc de faire un ping à chaque machine du réseau avec la procédure ci dessus, qui permet de paramétrer le nombre de ping par adresse et le temps d'attente.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Citation Envoyé par danielsoft Voir le message
    Sur linux il suffit de faire :
    ping -b 192.168.1.255 ou ping -b 255.255.255.255
    Je ne savais pas, mais je serais curieux de connaitre le nombre de collisions lors des réponses sur un réseau d'entreprise.
    Je sais que ça ne passe pas les routeurs, mais sur ne serais-ce qu'une dizaine de postes, je pense que ça doit saturer.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 55
    Points : 70
    Points
    70
    Par défaut
    Sur un classe C il n'y a aucun problème. Regarde le lien que j'ai indiqué au-dessus pour avoir une idée du fonctionnement.

    De toute façon comme sous windows il faut pour chaque adaptateur faire une modif dans la base de registre de chaque machine pour qu'elle réponde, il vaut mieux faire un ping IP.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 149
    Points : 89
    Points
    89
    Par défaut
    Merci de vos réponses!!!

    Désolé du retard.... Mais merci pour toutes vos indications

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

Discussions similaires

  1. Ping adresse réseau impossible
    Par Mut dans le forum Administration
    Réponses: 4
    Dernier message: 26/10/2006, 11h28
  2. Ping de broadcast pour scanner un LAN ? (sous windows)
    Par SamRay1024 dans le forum Développement
    Réponses: 1
    Dernier message: 05/09/2006, 12h23
  3. Récupérer l'adresse broadcast
    Par soad dans le forum Général Java
    Réponses: 9
    Dernier message: 26/06/2006, 15h55
  4. Réponses: 5
    Dernier message: 29/03/2006, 13h15
  5. Ping de broadcast sous Windows
    Par ovh dans le forum Développement
    Réponses: 10
    Dernier message: 09/05/2003, 18h40

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