Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Adresse MAC [ Archives / Au secours ] (Jeff_Trek)

mercredi 9 novembre 2005 à 15:12:48 | Adresse MAC

Jeff_Trek

Comment récupère-t-on l'adresse matérielle d'une carte réseau (Adresse MAC) et comment la passe-t-on en paramètre dans une socket ?



Jeff.

mercredi 9 novembre 2005 à 15:21:07 | Re : Adresse MAC

DeAtHCrAsH

Qu'est ce que tu entends par passer en paramètres une adresse MAC a un socket ?

Shell

mercredi 9 novembre 2005 à 15:37:13 | Re : Adresse MAC

Jeff_Trek

Salut,

Si j'ai bien compris, comme j'ai 2 cartes reseaux, je recois les infos par socket IP d'une carte et je dois les renvoyer via socket vers une autre carte reseau.

Il faut que je passe en parametre l'adresse MAC de mes carte reseau avant de creer ma socket, non ? OU bien les adresse IP et port TCP suffisent ? Si oui comment faire ?

merci d'avance.


Jeff.

mercredi 9 novembre 2005 à 15:53:28 | Re : Adresse MAC

DeAtHCrAsH

Pas la peine de tes adresses MAC.
Il te faut juste les adresses IP de tes cartes réseaux. Pour le port tout dépend de ton choix après.

Shell

mercredi 9 novembre 2005 à 18:28:19 | Re : Adresse MAC

Jeff_Trek

Alors dans ce cas comment je fais pour associé mon adresse IP de la carte à la socket  (Serveur)

Voici mon code :

/*************************************************/
void Fonction_Thread_Serveur(LPVOID param)
/*************************************************/
{
 char strTaille[20];
 //char *Message_Emis;
 int intTailleMessage;
 SOCKET Desc_Socket_Locale;
 int fin=FALSE;
 Desc_Socket_Locale=(SOCKET)param;

 while(!fin)
 {
  
  //printf("Reception message : %s",Message_Francais_A_Emettre);
 
  if (Message_Francais_A_Emettre!=NULL)
  {
    printf("trame envoyee = %s\n",Message_Francais_A_Emettre);

  //size_t intTailleMessage = sizeof(Message_Emis);  
  intTailleMessage = strlen(Message_Francais_A_Emettre);    
  send(Desc_Socket_Locale,Message_Francais_A_Emettre,intTailleMessage ,0);   
  _itoa(intTailleMessage ,strTaille,10);
  //MessageBox(NULL,strTaille,"Taille de la trame",0);
  Message_Francais_A_Emettre=NULL;
  Sleep(5000);
  //getch();
  // GT Mis a vrai en temporaire ->
  }
  //fin=TRUE;
  // <- GT Mis a vrai en temporaire

 }
 closesocket(Desc_Socket_Locale);
}


/*************************************************/
BOOL DemarreServeurFrancais(void)
/*************************************************/
{
 int Code_Retour;
 SOCKET Desc_Socket_Connection;
 SOCKADDR_IN Adresse_Socket_Connection;
 WORD wVersionRequested;
 WSADATA wsaData;

 wVersionRequested=MAKEWORD(1,1);

 Code_Retour=WSAStartup(wVersionRequested,&wsaData);

 if(Code_Retour!=0)
 {
  perror("WSAStartup\t");
  //getch();
  WSACleanup();
  exit(errno);
 }
 printf("la version supportee est : %d.%d\n",
  LOBYTE(wsaData.wHighVersion),
  HIBYTE(wsaData.wHighVersion)
  );

 Desc_Socket_Connection=socket
  (
  AF_INET,
  SOCK_STREAM,
  0
  );

  printf("valeur de la socket = %d\n",Desc_Socket_Connection);

  ZeroMemory(&Adresse_Socket_Connection,sizeof(Adresse_Socket_Connection));
  Adresse_Socket_Connection.sin_family=AF_INET;
  Adresse_Socket_Connection.sin_port=htons(Spationav->intPortTCP);

  printf("Port TCP Client SPATIONAV : %d\n",Spationav->intPortTCP);

 Code_Retour=bind
  (
  Desc_Socket_Connection,
  (struct sockaddr*)&Adresse_Socket_Connection,
  sizeof(Adresse_Socket_Connection)
  );

 if(Code_Retour!=0)
 {
  perror("bind\t");
  //getch();
  closesocket(Desc_Socket_Connection);
  WSACleanup();
  exit(errno);
 }
 Code_Retour=listen(Desc_Socket_Connection,Nb_Max_de_Client);
 if(Code_Retour!=0)
 {
  perror("listen\n");
  WSACleanup();
  exit(errno);
 }
 printf("serveur Francais en attente d'une connection d'un client style SPATIONAV \n\n");
 //printf("***************arret du serveur par<CTRL><C>**************\n\n");

 //while(TRUE)
 //do
 {
  SOCKET * pt_Nouveau_Socket_Serveur;
  SOCKADDR_IN Adresse_Socket_Cliente;
  int Longueur_Adresse;
  HANDLE hthread;
  DWORD threadID;


  pt_Nouveau_Socket_Serveur = new SOCKET;

  Longueur_Adresse = sizeof(Adresse_Socket_Cliente);

  *pt_Nouveau_Socket_Serveur=accept
   (
   Desc_Socket_Connection,
   (struct sockaddr*)&Adresse_Socket_Cliente,
   &Longueur_Adresse
   );
  printf("connection accepte depuis le port client %d\n",
   ntohs(Adresse_Socket_Cliente.sin_port));
  hthread=CreateThread
   (
   NULL,
   0,
   (LPTHREAD_START_ROUTINE)Fonction_Thread_Serveur,
   (LPVOID)*pt_Nouveau_Socket_Serveur,
   0,
   &threadID
   );


 } 
 //}while(TRUE);

 return (0);
}

Merci d'avance pour savoir comment cela est possible

Jeff.




Cette discussion est classé dans : mac, adresse


Répondre à ce message

Sujets en rapport avec ce message

Recuperation adresse MAC des machines d un reseau [ par sicakmustafa ] Je voudrais récupérer les adresses MAC se trouvant dans le meme réseau (LAN), mais je n'ai pas trouver d'appels systèmes qui fait cela.Pouvez-vous m'a Adresse MAC [ par none77 ] Bonjour,j'aimerais savoir s'il est possible de récupérer l'adresse MAC d'un pc distant sur un réseau local.Merci,None. Obtenir adress mac local + ca marche à moitié.... [ par emmanuel9 ] Bonjour, J'aurais souhaité récupéré l'adresse mac de ma machine, j'ai essayé le code suivant (c++ managé)String*  machineMacAddress = "";ManagementCla Obtenir l'adresse MAC d'une IP [ par metos ] Bonjour à tous,     J'ai une adresse IP, et je souhaiterais obtenir l'adresse MAC. Comment peut-on le faire en C?Merci d'avancemetos Trouver l'adresse mac d'une connection à partir du serveur [ par wizard512 ] Bonjour,   Je souhaiterais savoir si quelqu'un s'aurais comment  récupéré l'adresse mac d'un programme client se connectant sur  un p Obtenir une mac adresse en c++ [ par Xantra ] Bonjour,Je cherche un code permettant de récupérer la mac adresse de la carte réseau numéro 1 d'un pc. Après une journée de recherche je commence a cr VirtualProtect qui crash [ par TryToHelpMe ] Bonjour, après avoir lu plusieurs sources de ce site sur le hook de l'API, j'essaye de réaliser ma propre source, pour bien comprendre comment cela fo adresse ip et classe [ par playm2009 ] salut les amis je cherche comment faire un programme en C qui entre l'@ IP puis donner le classe del'@ puis les nombres des machines qu'on peut adress problème de chaine de caractère [ par crawhawks21 ] Bonsoir,je suis nouveau ici et je ne sais pas si je m'adresse au bon endroit pour trouver une réponse à mon problème, voilà je débute en programmation


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.