Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Liste des adresses IP sur le réseau

Résolu !
Accéder à la solution

Bonjour,

 

Je suis sur le point de développer un outils pour lire toutes les adresses IP des machines thermiques connectées sur le réseau de mon entreprise.

 

Je travail sous labview 8.5 et 2011.

 

L'adresse de mon réseau est (par exemple) 192.16.62.X et le masque de sous réseau est 255.255.255.0.

 

J'ai une machine thermique à l'adresse 192.16.62.99 et une deuxième à l'adresse 192.16.62.98.

 

Ce que je voudrais, c'est d'envoyer ma requête et d'avoir en retour toutes les adresses IP de ces machines.

 

Merci de votre aide.

 

Cdlt,

 

PS: la requête permet à la machine de renvoyer du texte ("MachineX")

 

 

0 Compliments
Message 1 sur 10
5 852 Visites

Bonjour Tomaks et bienvenue sur le forum de discussions de National Instruments.

 

Je ne sais pas quelle requète vous utilisez, cepandant j'ai réflechi à une solution sur la base d'un broadcast ARP suivi de pings.

 

Dans le code que je vous propose, j'effectue tout dabord une mise à jour de la table ARP, grace à l'appelle d'une commande système windows.

J'effectue ensuite un ping -a afin d'obtenir l'adresse IP et le hostname des machines trouvées. Est-ce celà que vous désirez ?

 

entrez dans la commande les trois premiers digits de l'adresse du réseau, par exemple 192.16.62 (en référence à votre exemple).

 

N'hésitez pas a poser les questions qui vous viendraient à l'esprit à propos de ce code.

 

findIP.JPG

 

NB : cela ne fonctionne que sur des systèmes windows en français.

 

Cordialement,

Message 2 sur 10
5 832 Visites

Bonjour Vincent et merci de ta réponse rapide,

 

Je ne vais pas trop rentrer dans les détails de la requête, car elle est confidentielle (histoire de pognon 😉 ), par contre, ton vi est très intéressant et pourrait m'être très utile dans le futur.

 

Moi de mon coté, j'ai réalisé un petit vi qui ouvre et qui ferme toutes les connexions [192.16.72.0 jusqu'à 192.16.62.255]. Il fonctionne mais parfois il m'arrive d'avoir aucune réponse. Surement a cause de la lenteur des machines et de leurs utilisations en production.

 

Je t'ai mis en pièce jointe, le vi allégé de la requête. Si tu pouvait y jeter un oeil et me dire s'il ne présente pas de grands défauts?

 

NOTE: J'ai oublié de mentionner dans mon post précédent, le fait que je dois scanner uniquement sur le port 10001.

 

Cdlt,

Message 3 sur 10
5 816 Visites

c'est une méthode intéressante, je ne saurais pas juger les performances.

d'un coté nous avons un brodcast + le nombre de pings correspondant au nombre de machines (taille du ping réduite au minimum)

de l'autres les ouvertures-fermetures de connexion TCP...

vous vérifiez 255 adresses mais vous ne pouvez en occuper physiquement que 254 (de 1 à 254, inclus), ça fait un tour de boucle en moins Smiley heureux

 

j'ai simplement une petite question, dans la première boucle for, à quoi sert l'addition 0+ i sachant que l'on pourrait se contenter de... i uniquement Smiley très heureux

 

ou alors j'ai mal saisi quelque chose Smiley clignant de l'œil

 

il y a également une porte logique "NON" qui est à mon sens inutile, juste avant votre structure condition. Si vous permuttez les codes des fenètres "vrai" et faux" vous pouvez la supprimer.

 

mais ce sont deux petits détails qui ont peu d'influence sur les perfs

 

amicalement,

 

 

0 Compliments
Message 4 sur 10
5 806 Visites

Salut vincent,

 

L'addition 0 + i sert justement à insérer un offset sur l'adresse physique. Comme tu la dis, on ne peut occuper physiquement que les adresses allant de 1 à 254 inclus.

De plus, l'opérateur inversion était la pour rien, j'avoue que je ne sais pas pourquoi je l'ai mis là ^^.

 

Si je devais revenir sur les performances, le programme ne marche pas souvent. De mémoire, cette méthode ne fontionner pas sous labview 8.5. Avec labview 2011, le problème n'est plus aussi fréquent (mais il existe quand même), ils ont du régler le problème entre temps ^^ et cela peut me poser un petit soucis, si je dois lancer mon apllication et que je n'arrive pas a détecter la machine sur le réseau. J'imagine pas la tête de l'opérateur :).

 

Cdlt,

0 Compliments
Message 5 sur 10
5 792 Visites

Bonjour Tomaks,

 

coté performance, votre solution utilise des protocoles plus haut niveau (TCP) que celle proposée (ARP + ICMP). De mon coté ça a bien fonctionné, mais cela a été beaucoup plus long. Avez vous pu tester mon vi "findIP" sur votre propre réseau ?

 

Au final, disposez-vous d'une solution au problème initial ? si tel est le cas n'hésitez pas à indiquer que ce thread est résolu Smiley clignant de l'œil

 

Cordialement,

0 Compliments
Message 6 sur 10
5 783 Visites

Oui ça fonctionne, mais votre votre VI "findIP" est très lent par rapport au mien. Mais le mien n'est pas fiable à 100%. Je vais continuer à chercher une solution à mon problème encore un peu plus.

 

Le programme est lent, car il ne trouve pas de nom à toutes les machines présentes sur le réseau. Celles qui ont un nom sont traitées rapidement alors que les autres prennent un temps monstre (~5sec)

 

Cdlt,

0 Compliments
Message 7 sur 10
5 779 Visites
Solution
Accepté par Tomaks

J'ai réussit à résoudre le problème et de diminuer le temps. J'ai utilisé ARP et TCP. Arp pour sa rapidité et TCP pour scanner les ports 10001.

 

0 Compliments
Message 8 sur 10
5 770 Visites

Bonjour

Je serai intéresser par vaux travaux sur le scan d adresse ip

Mais je travaille sur lab 2010

et vaux VI ne peuve pas s ouvrir pourrie vous me les recompiles merci

0 Compliments
Message 9 sur 10
5 512 Visites

Bonjour,

 

Je te joins le VI en version 2010.

 

Cdlt,

 

0 Compliments
Message 10 sur 10
5 505 Visites