Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2476 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [c++] obtenir le nom d utilisateur du pc [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++] obtenir le nom d utilisateur du pc [RESOLU]

n°319633
Gandalf_Le​_Gris
Posté le 27-02-2003 à 18:35:56  profilanswer
 

je voudrais obtenir le nom du pc, mais faudrait ke ca marche sur toutes les plates formes :/


Message édité par Gandalf_Le_Gris le 27-02-2003 à 20:36:14
mood
Publicité
Posté le 27-02-2003 à 18:35:56  profilanswer
 

n°319650
Poireau
Posté le 27-02-2003 à 18:56:22  profilanswer
 

Gandalf_Le_Gris a écrit :

je voudrais obtenir le nom du pc, mais faudrait ke ca marche sur toutes les plates formes :/


Re de re
 
Si tu veux le nom reseau, ya gethostname qui est une primitive socket d'unix, et qui est cense marche sous windows...

n°319660
Gandalf_Le​_Gris
Posté le 27-02-2003 à 19:04:53  profilanswer
 

ui, c aussi cke j avais trouvé sur google, merci v approfondir le sujet :D
 
merchii

n°319685
Poireau
Posté le 27-02-2003 à 19:37:35  profilanswer
 

Je t'ai donner le nom de la machine...
 
Pour le nom de l'utilsateur, il y a GetUserName sous windows...

n°319691
Gandalf_Le​_Gris
Posté le 27-02-2003 à 19:41:13  profilanswer
 

je trouve pas beaucoup d exemple sur le net pour voir comment ca marche, le seul truc ke j ai trouvé c ca:
 
 

Code :
  1. char host[32]; //tableau pour accueillir le nom de machine sur lequel tourne ce programme
  2. struct hostent *hp; //resultat de la recherche du nom
  3. char *adrIPp;
  4. struct in_addr adrIP;
  5. gethostname(host, 32);
  6. printf("nom de la machine sur lequel tourne ce programme : %s\n", host);
  7. if((hp=gethostbyname(host))==NULL)
  8. {
  9. fprintf(stderr, "machine hebergeant le programme non identifiee par
  10. gethostbyname\n" );
  11. }
  12. printf("longueur d'adresse : %d\n", hp->h_length);
  13. adrIP.s_addr=*(int *)hp->h_addr;
  14. adrIPp =(char *)inet_ntoa(adrIP);
  15. printf("adresse IP de cette machine : %x, soit %s\n", ntohl(adrIP.s_addr), adrIPp);


 
tu en penses koi ?

n°319696
Gandalf_Le​_Gris
Posté le 27-02-2003 à 19:45:00  profilanswer
 

donc moi g juste mis ca:
 

Code :
  1. char host[32]; //tableau pour accueillir le nom de machine sur lequel tourne ce programme
  2. gethostname(host, 32);
  3. printf("nom de la machine sur lequel tourne ce programme : %s\n", host);


 
aucune erreur pdt la compile mais impossible de build le .exe
-> error LNK2001: unresolved external symbol _gethostname@8
 
au fait, fo mettre kel fichier en include ? parcke j ai pas trouvé grd chose :/

n°319700
gloop
Posté le 27-02-2003 à 19:48:36  profilanswer
 

sous unix c'est dans unistd.h
et sous windows WinSock.h
si t'es sous windows, faut linker avec winsock

n°319703
Poireau
Posté le 27-02-2003 à 19:53:24  profilanswer
 

Gandalf_Le_Gris a écrit :

je trouve pas beaucoup d exemple sur le net pour voir comment ca marche, le seul truc ke j ai trouvé c ca:
 
 

Code :
  1. char host[32]; //tableau pour accueillir le nom de machine sur lequel tourne ce programme
  2. struct hostent *hp; //resultat de la recherche du nom
  3. char *adrIPp;
  4. struct in_addr adrIP;
  5. gethostname(host, 32);
  6. printf("nom de la machine sur lequel tourne ce programme : %s\n", host);
  7. if((hp=gethostbyname(host))==NULL)
  8. {
  9. fprintf(stderr, "machine hebergeant le programme non identifiee par
  10. gethostbyname\n" );
  11. }
  12. printf("longueur d'adresse : %d\n", hp->h_length);
  13. adrIP.s_addr=*(int *)hp->h_addr;
  14. adrIPp =(char *)inet_ntoa(adrIP);
  15. printf("adresse IP de cette machine : %x, soit %s\n", ntohl(adrIP.s_addr), adrIPp);


 
tu en penses koi ?


Hum, tu peux te tenter ça mais moi j'ai jamais reussi a utiliser gethostname sous windows et sous unix, je sais pas pourquoi. De plus, recuperer l'adresse ip d'une machine sous la forme d'une chaine c'est toujours assez chiant. Mais bon je vois pas d'autres moyens pour que ca marche sous *nix et sous windows.
 
Tu veux le nom de la machine ou bien le nom de l'utilisateur ?

n°319707
Poireau
Posté le 27-02-2003 à 20:02:06  profilanswer
 

Pour ton problème de compilation si tu est sous gcc (DevCpp), la lib c'est :
libws2_32.a
 
Et sous visual c'est :
WS2_32.Lib
 
Et pour le .h c'est Winsock2.h
 
Enfin, pour mon problème qui est aussi le tien je viens de trouver ca : http://forum.hardware.fr/forum2.ph [...] subcat=386


Message édité par Poireau le 27-02-2003 à 20:05:11
n°319710
Gandalf_Le​_Gris
Posté le 27-02-2003 à 20:11:32  profilanswer
 

pour le nom je m en fous, c juste pour avoir un repere, nom d utilisateur c bien, masi si c trop compliké :/

mood
Publicité
Posté le 27-02-2003 à 20:11:32  profilanswer
 

n°319713
Gandalf_Le​_Gris
Posté le 27-02-2003 à 20:23:00  profilanswer
 

je sais pas si j ai bien linké, mais kan je mets include Winsock2.h i me fait 58errors  :fou:


Message édité par Gandalf_Le_Gris le 27-02-2003 à 20:23:28
n°319715
Gandalf_Le​_Gris
Posté le 27-02-2003 à 20:35:49  profilanswer
 

voila, enfin trouvé, et c sans inclure winsock2.h:
 

Code :
  1. DWORD StrLen = 256;
  2. TCHAR SysInfoStr[256];
  3. GetComputerName(SysInfoStr, &StrLen);
  4. printf("nom de la machine : %s\n", SysInfoStr);
  5. GetUserName(SysInfoStr, &StrLen);
  6. printf("nom utilisateur : %s\n", SysInfoStr);


 
ca marche nickel


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [c++] obtenir le nom d utilisateur du pc [RESOLU]

 

Sujets relatifs
[c++] 2blemes insides [RESOLU][PHP] session [resolu mais pas comme je veux ;) ]
Question sur Tkinter [resolu]JEditorPane qui s'emmêle ? [RESOLU]
Petite question sur import [résolu]prob d'indentation :( [resolu]
[Résolu][Php] Problème explorateur de fichiers (lecteur réseau)problème incroyable.... [RESOLU]
[Résolu][Php/Oracle] Problème de caractères bizarres après extraction[Windows] Comment lancer un programme en tache de fond ? RESOLU
Plus de sujets relatifs à : [c++] obtenir le nom d utilisateur du pc [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR