PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [WD15] Parcourir le réseau (workgroup ou domaine) et énumération de machines
[WD15] Parcourir le réseau (workgroup ou domaine) et énumération de machines
Débuté par Adi, 03 juin 2010 12:44 - 4 réponses
Posté le 03 juin 2010 - 12:44
Bonjour,

Je me demande s’il existe une routine qui permettrai de parcourir un réseau du type workgroup ou domaine pour afficher la liste de pc. C’est un peu comme la fonctionnalité du centre de contrôle hyperfilesql qui permet de trouver les serveurs HFS dans le réseau seulement ce que moi j’ai besoin est la liste toutes les machines.

Est-ce possible ?

D’avance merci pour vos idées.

Bàv,

Adi
Posté le 03 juin 2010 - 14:17
bonjour
une solution très simple c'est de pinger (seul ceux allumés)
la seconde est de lire active directory (tout)
"Adi" <adi@zebic.info> a écrit dans le message de news:
087bc153af5ed6868cc71bc54e18f866@news.pcsoft...

Bonjour,

Je me demande s’il existe une routine qui permettrai de parcourir un
réseau du type workgroup ou domaine pour afficher la liste de pc. C’est un
peu comme la fonctionnalité du centre de contrôle hyperfilesql qui permet
de trouver les serveurs HFS dans le réseau seulement ce que moi j’ai
besoin est la liste toutes les machines.

Est-ce possible ?

D’avance merci pour vos idées.

Bàv,

Adi

Posté le 03 juin 2010 - 16:16
Philippe Pasquali wrote in news message <4c0780e2$1@news.pcsoft.fr>:
bonjour
une solution très simple c'est de pinger (seul ceux allumés)
la seconde est de lire active directory (tout)
"Adi" <adi@zebic.info> a écrit dans le message de news:
087bc153af5ed6868cc71bc54e18f866@news.pcsoft...


Bonjour,

Ping: je devrai pinguer le "broadcast" pour detecter les machines connectés. Je pense que c'est penible et puis je ne sais pas ou l'application sera executé(ping du broadcast intérdit, réponse de routeurs, imprimantes et tout les reste de connectable au réseau en n'étant pas un PC...)

Intéroger le DNS d'un AD: comment distinguer que le pc en question se trouve dans un domaine ou dans un WG, qu'il y ai bien un DNS etc..

Je pense qu'utilisation du netbios est la meilleure manière de faire seulement je ne sais pas comment. Windows netapi32 normalement devra faire ce que je veux. Je ne sais pas comment utiliser les API windows à partir de windev. Mais, je suis certain qu'une telle fonctionnalitée existe en windev, je l'avais vu dans un projet quelque part mais je ne sais plus ou et reinventer la roue ne servira à rien...

En tous cas merci pour l'info Philippe :-)
Posté le 03 juin 2010 - 18:44
Adi a exposé le 03/06/2010 :
Bonjour,

Je me demande s’il existe une routine qui permettrai de parcourir un réseau
du type workgroup ou domaine pour afficher la liste de pc. C’est un peu comme
la fonctionnalité du centre de contrôle hyperfilesql qui permet de trouver
les serveurs HFS dans le réseau seulement ce que moi j’ai besoin est la
liste toutes les machines.

Est-ce possible ?

D’avance merci pour vos idées.

Bàv,

Adi


regarder le composant WD InfoSysteme

--
Cordialement JeAn-PhI
Posté le 04 juin 2010 - 10:49
bonjour,
voici un exemple ( un peu bricolé je l'avoue et certainement pas optimisé) pour récupérer la listes des PCs sur le réseau à partir de fonctions du composant WD InfoSystème (à importer si on veut l'utiliser) :
ReseauElementPremier(ParcoursReseau.RESEAU_RACINE)
v,x,y,z sont des entiers
Niveau0 est un tableau de 5 chaînes // 1er Niveau des réseaux ( provider )
Niveau1 est un tableau de 20 chaînes // 2ème Niveau des réseaux ( domain/workgroup)
Niveau2 est un tableau de 256 chaînes // 3ème Niveau des réseaux (ordinateurs)
x=1
TANTQUE PAS ReseauEnDehors()
Niveau0[x]=ReseauElementNomDistant()
ReseauElementSuivant()
x++
FIN
y=1
POUR v= 1 A x-1
ReseauElementPremier(Niveau0[v]) // astuce si x=1 c'est qu'on a rien trouvé en niveau0
TANTQUE PAS ReseauEnDehors()
Niveau1[y]=ReseauElementNomDistant()
ReseauElementSuivant()
y++
FIN
FIN
z=1
POUR v = 1 A y-1
ReseauElementPremier(Niveau1[v]) // astuce si y=1 c'est qu'on a rien trouvé en niveau1
TANTQUE PAS ReseauEnDehors()
Niveau2[z]=ReseauElementNomDistant()
ReseauElementSuivant()
z++
FIN

FIN

Si tout va bien tu devrais te retrouver avec les noms des PC du réseau dans le tableau de niveau2 ( à confirmer c'est ce que j'obtiens chez moi mais je n'ai pas de domaine).
La dimension des tableaux est à ajuster en fonction de la taille des réseaux.
Dommage qu'on ne puisse pas utiliser (à confirmer) la récursivité avec ReseauElementPremier.

Ami calmant, J.P ;-)