Page 1 sur 1

Lister les noms et/ou IP des machines du meme serveur

Publié : mer. 17/déc./2008 12:28
par Kwai chang caine
Bonjour à tous

Croyez vous qu'il soit possible d'avoir la liste de toutes les machines reliées sur le serveur, en lançant un programme sur une de ces machines ??? :roll:

Car j'ai trouvé un code de Infobyt3 qui liste les serveurs. :D

http://www.purebasic.fr/english/viewtop ... 052#163052

Mais pas un qui liste toutes les machines du serveur ou l'on est connecté :cry:

Merci et bonne journée

Publié : mer. 17/déc./2008 13:24
par Kwai chang caine
J'ai trouvé celui la de FLYPE, il est en 3.94 et il marche pas :cry:
http://www.purebasic.fr/french/viewtopi ... t=list+lan

Publié : mer. 17/déc./2008 14:22
par Cls
Chez moi (au bureau) il marche bien.

N'oublie pas de mettre un nom de machine sur ces lignes :

Code : Tout sélectionner

EnumNetwork(0, #TYPE_LIST,"là")
EnumNetwork(1, #TYPE_TREE,"et là")
De commenter ces 2 lignes :

Code : Tout sélectionner

OpenTreeGadgetNode(Gadget)
CloseTreeGadgetNode(Gadget)
Et c'est tout il me semble ;)

Publié : mer. 17/déc./2008 15:15
par Kwai chang caine
Bonjour CLS, content de te parler :D

Bah moi au boulot ça marche pas :cry:
Mais il faut dire que le reseau chez nous est pas simple, enfin surtout pour moi :oops:

Je suis sous W2000, quand je clique "Favoris reseau\Tout le reseau\Reseau microsoft windows", j'ai les workgroups qui apparaissent.
Si je clique dans le miens, c'est pas nos machines qui apparaissent, mais le serveur sur lequel on est relié.

Et quand je fais click droit "Poste travail\Id Reseau\Propriétés" j'ai le nom de mon PC , mais c'est pas groupe de travail qui est selectionné dans l'optionbox, mais Domaine, avec un nom a rallonge du style "NomDuWorkGroups.NomDeL'entreprise.FR" 8O

Publié : mer. 17/déc./2008 16:00
par Cls
Ah ouaip j'ai oublié de dire Bonjour ! Au temps pour moi :oops:

Si tu lances une petite ligne de commande et que tu tapes "hostname", il te sort quoi ?

Chez moi c'est bgsxp-342 par exemple. Du coup je mets çà dans le code :

Code : Tout sélectionner

EnumNetwork(0, #TYPE_LIST,"\\bgsxp-342")
EnumNetwork(1, #TYPE_TREE,"\\bgsxp-342")
En espérant que ça t'aide.

Publié : mer. 17/déc./2008 16:15
par Kwai chang caine
Te casse pas la tete moi j'te dis bonjour, parceque j'suis drolement content de te parler, tout seule dans mon ile :D

J'ait fait comme t'as dit, ça me donne le nom de ma machine.
J'ai donc ecris "\\NomMachine" sur les 2 lignes
Mais j'ai trouvé le "Miasme" :?

Il sort de cette boucle 2 fois et reste coincé dans la gestion d'evenement :cry:

Code : Tout sélectionner

If WNetOpenEnum_(#RESOURCE_GLOBALNET,#RESOURCETYPE_ANY,#Null,*item,@hEnum) <> #NO_ERROR 
    ProcedureReturn #False 
  EndIf 
  

Publié : mer. 17/déc./2008 16:29
par Cls
Humm ça m'a fait ça au début et ensuite ça a marché. J'essaie de me rappeler ce que j'ai fait... De mémoire ça doit pas être grand chose ;)

Publié : mer. 17/déc./2008 16:35
par Cls
Bon en fait j'ai vérifié, je n'ai rien touché de plus.

Seulement remis les détails pour que ça marche en v4.20 :
- global sur hIcon
- paramètres dans le bon ordre sur le OpenWindow
- et les identifiants qui vont bien pour les fonctions qui en ont besoin

Pour l'heure je ne peux pas t'aider plus :( J'essaierai chez moi ce soir.

Publié : mer. 17/déc./2008 17:13
par Kwai chang caine
et les identifiants qui vont bien pour les fonctions qui en ont besoin
Bon le reste, j'y suis arrivé, ou presque, mais ça doit etre la l'os, helas :lol:

Mais je pense aussi, que comme je te l'ai dit, chez nous c'est mega compliqué, proxy, seveur par ci, domaine par la et y'a jamais rien qui marche des que ça parle reseau :?

En tout cas encore merci pour ton aide 8)

Publié : mer. 17/déc./2008 17:54
par Cls
Ce qui m'étonne, c'est que tu ne puisses même pas lire les ressources réseaux de ta propre machine.

En complément d'information, j'ai trouvé ceci sur le net : http://delphi.developpez.com/faq/?page= ... ServerType Bon c'est du Delphi mais peut être que ça pourra aider.

Publié : mer. 17/déc./2008 18:08
par Kwai chang caine
Ce code par exemple marche nickel :D
Il me remonte tous les serveurs
Mais moi, c'est les machines voisines connectées sur mon serveur que je voudrais, pas la liste des serveurs :?

Code : Tout sélectionner

; http://www.purebasic.fr/german/viewtopic.php?t=12246&highlight=list+lan

Procedure.l getLanComputer(List.s()) ; by AND51, Mar/2007 
   Protected *buffer, found.l, n.l, result.l 
   CompilerIf ~Defined(MAX_PREFERRED_LENGTH, #PB_Constant) 
      #MAX_PREFERRED_LENGTH=-1 
   CompilerEndIf 
   CompilerIf ~Defined(SV_TYPE_ALL, #PB_Constant) 
      #SV_TYPE_ALL=$FFFFFFFF 
   CompilerEndIf 
   CompilerIf ~Defined(SERVER_INFO_100, #PB_Structure) 
      Structure SERVER_INFO_100 
         platform_id.l 
         name.l 
      EndStructure 
   CompilerEndIf 
   Protected infoblock.SERVER_INFO_100 
    
   result=NetServerEnum_(0, 100, @*buffer, #MAX_PREFERRED_LENGTH, @found, @n, #SV_TYPE_ALL, 0, 0) 
    
   For n=0 To found-1 
      CopyMemory(*buffer+SizeOf(SERVER_INFO_100)*n, @infoblock, SizeOf(SERVER_INFO_100)) 
      AddElement(List()) 
         List()=PeekS(infoblock\name, -1, #PB_Unicode) 
   Next 
    
   NetApiBufferFree_(*buffer) 
   ProcedureReturn result 
EndProcedure 


NewList computer.s() 
getLanComputer(computer()) 
ForEach computer() 
   Debug computer() 
Next