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

  FORUM HardWare.fr
  Programmation
  C

  [C Windows] Afficher l'IP ou l'hostname de la machine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C Windows] Afficher l'IP ou l'hostname de la machine

n°470013
Cherrytree
cn=?
Posté le 28-07-2003 à 16:53:07  profilanswer
 

Désolé de poster mes questionnettes de newbie, mais MSDN n'est pas des plus simples à naviguer (y a mieux ??).
 
En fait je cherche à afficher l'ip de la machine (ou autre, c'est juste pour identifier) qui exécute le programme C que j'écris.
 
Maintenant que j'y pense, c'est peut-être pas du C Windows, ma question.


---------------
Le site de ma maman
mood
Publicité
Posté le 28-07-2003 à 16:53:07  profilanswer
 

n°470019
*syl*
--> []
Posté le 28-07-2003 à 16:57:27  profilanswer
 

Pour le hostname :
gethostbyname() =>
http://msdn.microsoft.com/library/ [...] name_2.asp
 
Pour l'IP :
gethostbyaddr() =>
http://msdn.microsoft.com/library/ [...] addr_2.asp


Message édité par *syl* le 28-07-2003 à 16:57:47
n°470029
Cherrytree
cn=?
Posté le 28-07-2003 à 17:05:49  profilanswer
 

Pff... Merci beaucoup *Syl*.
 
Je suis parti pour faire chier, je le sens. Que me conseillez-vous comme ressource (bouquin ou site web, histoire que je sois moins nul) ?


---------------
Le site de ma maman
n°470032
*syl*
--> []
Posté le 28-07-2003 à 17:07:50  profilanswer
 

Va déjà lire ce nouveau topic sur le C++:
http://forum.hardware.fr/forum2.ph [...] subcat=385
 
:)
 
Edit : trompé de lien


Message édité par *syl* le 28-07-2003 à 17:09:03
n°470734
Cherrytree
cn=?
Posté le 29-07-2003 à 11:34:19  profilanswer
 

Bon, à l'aide !
 
Je suis avec mon copain Visual C++ 6, j'ai écrit un programme qui affiche un bête frame. J'essaie d'imprimer l'adresse IP de la machine.
 
Et là c'est merveilleux. A mon code qui compile j'ajoute :

Code :
  1. #include <winsock2.h>


 
Et je mange 58 error(s), 11 warning(s). La première est :

error C2011: 'fd_set' : 'struct' type redefinition


---------------
Le site de ma maman
n°470744
El_gringo
Posté le 29-07-2003 à 11:39:49  profilanswer
 

Cherrytree a écrit :

Bon, à l'aide !
 
Je suis avec mon copain Visual C++ 6, j'ai écrit un programme qui affiche un bête frame. J'essaie d'imprimer l'adresse IP de la machine.
 
Et là c'est merveilleux. A mon code qui compile j'ajoute :

Code :
  1. #include <winsock2.h>


 
Et je mange 58 error(s), 11 warning(s). La première est :

error C2011: 'fd_set' : 'struct' type redefinition




 
C'est peut  être que le .h dans lequel tu inclues "winsock2.h" est inclu plusieurs fois.
quand tu écris un header, mets toujours :

Code :
  1. // Au tout début du fichier (avant les includes)
  2. #ifndef _NomDeTonHeader_h_
  3. #define _NomDeTonHeader_h_
  4. ...
  5. // A la toute fin de ton fichier
  6. #endif

n°470758
Cherrytree
cn=?
Posté le 29-07-2003 à 11:46:26  profilanswer
 

Je code à la sauvage uniquement dans un .c pour l'instant. Par contre j'inclus windows.h déjà. Une piste ?


---------------
Le site de ma maman
n°470763
Cherrytree
cn=?
Posté le 29-07-2003 à 11:49:11  profilanswer
 

Merci Gringo ! C'était dans windows.h. Mon header est déjà pris en compte.
EDIT: du coup j'ai viré mon import de winsock2.h


Message édité par Cherrytree le 29-07-2003 à 11:50:06

---------------
Le site de ma maman
n°470779
El_gringo
Posté le 29-07-2003 à 12:07:44  profilanswer
 

Cherrytree a écrit :

Je code à la sauvage uniquement dans un .c pour l'instant. Par contre j'inclus windows.h déjà. Une piste ?


 
Commence pas comme ça. C'est dès le départ qu'il faut s'habituer à séparer les header (.h) des implémentations (.c ou .cpp)

n°470847
Cherrytree
cn=?
Posté le 29-07-2003 à 13:11:06  profilanswer
 

Je voudrais bien. J'ai juste jamais compris ce qu'on mettait dans un header.


---------------
Le site de ma maman
mood
Publicité
Posté le 29-07-2003 à 13:11:06  profilanswer
 

n°470858
polo021
Posté le 29-07-2003 à 13:18:42  profilanswer
 

dans les header tu mets les prototypes de tes methodes/fonctions ainsi que la declaration de tes variables et dans les .c/.cpp tu mets les definitions de tes methodes/fonctions. [:sinclaire]
exemple :  
Register.h
-----------

Code :
  1. class CRegister 
  2. {
  3. public:
  4. CString ReadString(LPCTSTR);
  5. bool WriteString(LPCTSTR, LPCWSTR);
  6. bool closeHKEY(HKEY);
  7. CRegister();
  8. virtual ~CRegister();
  9. };


 
Register.cpp
------------

Code :
  1. #include "stdafx.h"
  2. #include "Register.h"
  3. #ifdef _DEBUG
  4. #undef THIS_FILE
  5. static char THIS_FILE[]=__FILE__;
  6. #define new DEBUG_NEW
  7. #endif
  8. CRegister::CRegister()
  9. {
  10. }
  11. CRegister::~CRegister()
  12. {
  13. }
  14. bool CRegister::WriteString(LPCTSTR value, LPCWSTR name)
  15. {
  16. //traitements
  17. }
  18. bool CRegister::closeHKEY(HKEY m_hkey)
  19. {
  20. //traitements
  21. }
  22. CString CRegister::ReadString(LPCTSTR key)
  23. {
  24. //traitements
  25. }


Message édité par polo021 le 29-07-2003 à 13:20:54
n°470872
Cherrytree
cn=?
Posté le 29-07-2003 à 13:25:57  profilanswer
 

Mais si je déclare une classe par exemple. ça me choque de mettre ça dans un .h !
 
EDIT: ton exemple montre bien. Je reste choqué par la manière de faire.
 
Promis je vais faire des efforts.


Message édité par Cherrytree le 29-07-2003 à 13:26:58

---------------
Le site de ma maman
n°470907
drasche
Posté le 29-07-2003 à 13:56:37  profilanswer
 

Le truc est que le header peut être importé ailleurs dans le projet, afin d'en avoir toutes les déclarations (de la même manière que tu fais un import de windows.h ou winsock2.h, lesquels, tu l'auras vu, ne contiennent également que des déclarations et prototypes de classes).
 
Les définitions restent dans les .c et tout cela est résolu à l'édition des liens.  Dans le cas d'un import de winsock2.h, l'édition des liens fera (pas forcément automatiquement) appel à winsock2.lib qui contient les définitions des fonctions avec tout le code.
 
(je dis ça dans l'idée que tu débutes en C, en fait j'en sais rien :D)

n°470934
El_gringo
Posté le 29-07-2003 à 14:14:57  profilanswer
 

Cherrytree a écrit :

Mais si je déclare une classe par exemple. ça me choque de mettre ça dans un .h !
 
EDIT: ton exemple montre bien. Je reste choqué par la manière de faire.
 
Promis je vais faire des efforts.


 
Le concept de séparer les déclaration et l'implémentation, c'est interressant.
Et les commentaires, tu les mets dans le .h en priorité. en principe, juste en lisant le header d'une classe, tu doit pouvoir savoir ce qu'elle fait et à quoi elle sert.

n°471209
Cherrytree
cn=?
Posté le 29-07-2003 à 16:58:24  profilanswer
 

OK, ça me va.


---------------
Le site de ma maman

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

  [C Windows] Afficher l'IP ou l'hostname de la machine

 

Sujets relatifs
Windows XP et Visual fortran[EXCEL] afficher le nom de la personne la plus agé
[Windows] Nouveau développement d'un client à la MessengerProblème avec une Extension Shell Windows
[.NET] Windows Installer et la BdR - hard[ Delphi ] Vérifier le statut d'une machine et d'un programme serveurs
[PHP] probleme de session_start() sous windows[C Windows] Imprimer un PDF
[C Windows] Signature d'une méthode[JAVASCRIPT] Faire afficher d control et décalé le reste du formulaire
Plus de sujets relatifs à : [C Windows] Afficher l'IP ou l'hostname de la machine


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