Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD9] Recup infos poste reseau

5 réponses
Avatar
Win-Dev
Je cherche un moyen de récupérer les infos suivantes d'un poste du réseau :
Le nom du groupe de travail ou de domaine
la liste des ressources partagées (imprimantes,dossiers)

Quelqu'un à t'il un bout de code à ce sujet ?

Merci

5 réponses

Avatar
Romain PETIT
Win-Dev a émis l'idée suivante :
Je cherche un moyen de récupérer les infos suivantes d'un poste du réseau :
Le nom du groupe de travail ou de domaine



Pas si simple.
Cela dépend de l'OS, du style d'authentification (domaine NT, 2000,
2003, Active Directory...)
Une réponse assez complète ici, avec quelques pistes :
http://tinyurl.com/6rs9n
(cf l'API la clé de registre
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
ou l'API NetWkstaGetInfo )

la liste des ressources partagées (imprimantes,dossiers)



Probalement du côté de l'API NetShareEnum ou à défaut la clé de
registre HKLMSYSTEMCurrentControlSetServicesLanmanServerShares ...

Quelqu'un à t'il un bout de code à ce sujet ?



Désolé, pas ça sous la main...

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Jean Cougnaud
Bonjour,

Il y a quelques années, j'ai eu à récupérer les ressources partagées des
réseaux de nos clients pour mettre en place une gestion des historiques des
comptes-rendus des radiologues dont nous nous occupions.

J'avais donc à l'époque bataillé avec "mpr.dll" et les fonctions :
WNetOpenEnumA et WNetEnumResourceA. J'en avais fait une fenêtre de
paramétrage sous Windev 5.5.

Je viens de l'extraire et la mettre dans un petit projet en 7.5.

Tu le trouveras dans la page de mes contributions Windev à l'adresse :
http://www.jean-cougnaud.com

Tu pourras peut-être l'adapter pour tes besoins.

Cordialement

Jean Cougnaud
Informaticien indépendant
Bordeaux


"Win-Dev" a écrit dans le message de
news:cut5ae$7o9$
Je cherche un moyen de récupérer les infos suivantes d'un poste du réseau


:
Le nom du groupe de travail ou de domaine
la liste des ressources partagées (imprimantes,dossiers)

Quelqu'un à t'il un bout de code à ce sujet ?

Merci




Avatar
Win-Dev
Merci pour ton exemple. Ca marche impec.
Par contre, est il possible de faire la meme chose en spécifiant directement
le poste ou par son IP (et non tout le réseau) ?
Merci.

"Jean Cougnaud" a écrit dans le message de
news: 42130b23$0$15826$
Bonjour,

Il y a quelques années, j'ai eu à récupérer les ressources partagées des
réseaux de nos clients pour mettre en place une gestion des historiques
des
comptes-rendus des radiologues dont nous nous occupions.

J'avais donc à l'époque bataillé avec "mpr.dll" et les fonctions :
WNetOpenEnumA et WNetEnumResourceA. J'en avais fait une fenêtre de
paramétrage sous Windev 5.5.

Je viens de l'extraire et la mettre dans un petit projet en 7.5.

Tu le trouveras dans la page de mes contributions Windev à l'adresse :
http://www.jean-cougnaud.com

Tu pourras peut-être l'adapter pour tes besoins.

Cordialement

Jean Cougnaud
Informaticien indépendant
Bordeaux


"Win-Dev" a écrit dans le message de
news:cut5ae$7o9$
Je cherche un moyen de récupérer les infos suivantes d'un poste du réseau


:
Le nom du groupe de travail ou de domaine
la liste des ressources partagées (imprimantes,dossiers)

Quelqu'un à t'il un bout de code à ce sujet ?

Merci








Avatar
Jean Cougnaud
Bonjour,

Je n'ai jamais essayé de balayer le réseau à partir d'une ressource
particulière sans partir de la racine.

Peut-être qu'en remplissant la structure NetResource avec les éléments du
poste concerné (et en effectuant le wNetOpenEnum avec le pointeur sur cette
ressource cela pourrait fonctionner ?

A tester.

Cordialement

Jean Cougnaud

"Win-Dev" a écrit dans le message de
news:cvk2sh$d3d$
Merci pour ton exemple. Ca marche impec.
Par contre, est il possible de faire la meme chose en spécifiant


directement
le poste ou par son IP (et non tout le réseau) ?
Merci.

"Jean Cougnaud" a écrit dans le message de
news: 42130b23$0$15826$
> Bonjour,
>
> Il y a quelques années, j'ai eu à récupérer les ressources partagées des
> réseaux de nos clients pour mettre en place une gestion des historiques
> des
> comptes-rendus des radiologues dont nous nous occupions.
>
> J'avais donc à l'époque bataillé avec "mpr.dll" et les fonctions :
> WNetOpenEnumA et WNetEnumResourceA. J'en avais fait une fenêtre de
> paramétrage sous Windev 5.5.
>
> Je viens de l'extraire et la mettre dans un petit projet en 7.5.
>
> Tu le trouveras dans la page de mes contributions Windev à l'adresse :
> http://www.jean-cougnaud.com
>
> Tu pourras peut-être l'adapter pour tes besoins.
>
> Cordialement
>
> Jean Cougnaud
> Informaticien indépendant
> Bordeaux
>
>
> "Win-Dev" a écrit dans le message de
> news:cut5ae$7o9$
>> Je cherche un moyen de récupérer les infos suivantes d'un poste du


réseau
> :
>> Le nom du groupe de travail ou de domaine
>> la liste des ressources partagées (imprimantes,dossiers)
>>
>> Quelqu'un à t'il un bout de code à ce sujet ?
>>
>> Merci
>>
>>
>
>




Avatar
Jean Cougnaud
Bonjour,

Je viens d'essayer de remplir la structure NetResource et cela fonctionne.
Cependant il faut le faire avec le nom partagé du poste a balayer et il faut
aussi connaître le nom du "provider" . Dans mon cas le provider est "Réseau
Microsoft Windows".

Le nom de partage commence par ""

J'ai modifié le code de la procédure comme suit :

PROCEDURE
Resource_reseau(Adresse1=0,Type=0,LISTE="LISTE0",Pr_S_NomPartagePoste="")

// on passe maintenant le nom partagé du poste en paramètre la première fois

...
zLocalName, zRemoteName, zCommentaire, zProvider sont des chaînes ASCIIZ sur
256

...
...

// juste avant l'appel à la dll on teste si le nom de poste est vide et s'il
est rempli on affecte la structure

SI SansEspace(Pr_S_NomPartagePoste)<>"" ALORS // appel avec le nom du poste

zLocalName=""
zRemoteName=Pr_S_NomPartagePoste
zCommentaire=""
zProvider="Réseau Microsoft Windows"

NetResource.Dws=2
NetResource.DwT=0
NetResource.DwD=2
NetResource.DwU=2
NetResource.LpLName=&zLocalName
NetResource.LpRName=&zRemoteName
NetResource.LpComt=&zCommentaire
NetResource.LpProv=&zProvider

Reponse=AppelDLL32("mpr.dll","WNetOpenEnumA" , DwScope, DwType,
DwUsage, &NetResource, &HEnum)
SINON // appel normal
Reponse=AppelDLL32("mpr.dll","WNetOpenEnumA" , DwScope, DwType,
DwUsage, Adresse1, &HEnum)
FIN
//--------------------------------------------------------------------------
---------------------

Voila à tester sur ton réseau.

Cordialement

Jean Cougnaud





"Win-Dev" a écrit dans le message de
news:cvk2sh$d3d$
Merci pour ton exemple. Ca marche impec.
Par contre, est il possible de faire la meme chose en spécifiant


directement
le poste ou par son IP (et non tout le réseau) ?
Merci.

"Jean Cougnaud" a écrit dans le message de
news: 42130b23$0$15826$
> Bonjour,
>
> Il y a quelques années, j'ai eu à récupérer les ressources partagées des
> réseaux de nos clients pour mettre en place une gestion des historiques
> des
> comptes-rendus des radiologues dont nous nous occupions.
>
> J'avais donc à l'époque bataillé avec "mpr.dll" et les fonctions :
> WNetOpenEnumA et WNetEnumResourceA. J'en avais fait une fenêtre de
> paramétrage sous Windev 5.5.
>
> Je viens de l'extraire et la mettre dans un petit projet en 7.5.
>
> Tu le trouveras dans la page de mes contributions Windev à l'adresse :
> http://www.jean-cougnaud.com
>
> Tu pourras peut-être l'adapter pour tes besoins.
>
> Cordialement
>
> Jean Cougnaud
> Informaticien indépendant
> Bordeaux
>
>
> "Win-Dev" a écrit dans le message de
> news:cut5ae$7o9$
>> Je cherche un moyen de récupérer les infos suivantes d'un poste du


réseau
> :
>> Le nom du groupe de travail ou de domaine
>> la liste des ressources partagées (imprimantes,dossiers)
>>
>> Quelqu'un à t'il un bout de code à ce sujet ?
>>
>> Merci
>>
>>
>
>