begin process at 2010 02 10 10:27:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Adresse MAC


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Adresse MAC

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ée 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 IP Manager [ par Elixyr ] Bonjour a tous, Alors voila: en fait je suis en train de faire un "IP Manager"... fenetre qui permet d'afficher son Adresse IP en un clic... ca c'est Calcul des combinaisons des chaines de caracteres [ par boualiasma ] Bonsoir, J'ai un fichier texte "exemple.txt" qui contient dans chaque une seule chaine de caractère(attribut). On sait en avance le nombre d'attribut Programmer sur Mac [ par Zestyr ] Bonjour, je développe essentiellement pour Windows, et j'aurais besoin de savoir comment fonctionne un Mac, voici quelque question que j'espère qu'on


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,666 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales