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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

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

Message 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
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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 ;)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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 
  
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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 ;)
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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)
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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
Répondre