IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

recherche d'une @ IP à parti d'une @ MAC


Sujet :

Windows

  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut recherche d'une @ IP à parti d'une @ MAC
    Bonjour à tous,

    tout est dans le titre. Ma carte (une raspberry pi) est configurée en IP auto, et suivant l'adresse du réseau sur lequel je la branche je ne sais pas quelle adresse le dhcp lui a délivrée. Je ne peux donc pas me connecter à elle.
    Chez moi, je peux la retrouver à accédant à mon routeur, mais ailleurs ...

    Les adresses MAC des raspberry pi commencent toutes pas B8:27:EB:
    Il y a bien la table arp, mais comment la renseigner tant que n'ai pas encore accédé à la carte?

    Des idées? Une autre solution?
    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Si c'est l'adresse sur ton poste, en ouvrant une fenêtre CMD, tu fais un ipconfig /all...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Si c'est l'adresse sur ton poste, en ouvrant une fenêtre CMD, tu fais un ipconfig /all...
    C'eut été trop simple.

    Je veux connaitre l'adresse IP d'une carte dont je ne connais que l'adresse MAC (enfin, les 3 premiers octets).

    A+

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je développe en windev et j'ai fait un petit programme pour scanner les @IP du réseau (un peu comme netscan ip) et récupérer les adresses MAC. Ca tient en 4 lignes de code une boucle avec PING et NetIPVersMAC.

    Pas sûr que ça t'aide si tu bosses en C++...

    [EDIT]Je suis en IP fixe : est-ce dans la base de registre, tu ne pourrais pas lire cette valeur ? Regarde par ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [HKEY_CURRENT_USER\Software\Microsoft\Windows Media\WMSDK\Local\AutoProxyCache\LAN]
    et chez microsoft
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    Je développe en windev et j'ai fait un petit programme pour scanner les @IP du réseau (un peu comme netscan ip) et récupérer les adresses MAC. Ca tient en 4 lignes de code une boucle avec PING et NetIPVersMAC.
    j'y ai pensé, mais pinger plus de 65000 adresses ip, ça risque d'être long.

    Je suis en IP fixe : est-ce dans la base de registre, tu ne pourrais pas lire cette valeur ?
    Je ne comprends pas. Comment la base de registre pourrait-elle posséder des adresses ip d'autres ordinateurs connectés sur le réseau avec lesquels on n'a pas encore communiqué?

    A+

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je suis un peu perdu dans ta demande. Tu cherches l'adresse ip du poste sue lequel tu travailles ou celle(s) d'(un) autre(s) poste(s) ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  7. #7
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Je suis un peu perdu dans ta demande. Tu cherches l'adresse ip du poste sue lequel tu travailles ou celle(s) d'(un) autre(s) poste(s) ?
    D'un autre poste bien sur

    Un simple ipconfig ou ifconfig aurait suffit.

    Je veux me connecter depuis mon PC à une raspberry pi en SSH. Le problème, c'est qu'il me faut évidemment fournir son IP.

    A+

  8. #8
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Tu peux déjà facilement récupérer l'adresse ip de ton poste (et le masque).
    Le plus simple est de pinguer les adresses et d'arrêter dès que tu as la bonne (d'après ton début d'adresse MAC).
    Si ton masque est 255.255.255.0, tu "n'as que" 254 adresses possibles...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  9. #9
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    le problème, c'est qu'il peut avoir plusieurs raspberry connectées au réseau. Si je veux leur liste exhaustive, ca risque d'être un peu long.

    Je pourrais évidemment demander si une plage d'adresse est libre au niveau du routeur et réserver quelques IP fixes, mais j'aurais préféré laisser le DHCP faire ça tout seul: pas besoin de faire une demande à l'administrateur réseau.

    A+

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Désolé, je ne vois pas d'autre méthode. Le plus simple étant effectivement de réserver une plage d'adresses.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et applicatifs
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et applicatifs
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par jackk Voir le message
    C'eut été trop simple.

    Je veux connaitre l'adresse IP d'une carte dont je ne connais que l'adresse MAC (enfin, les 3 premiers octets).

    A+
    Si j'ai bien compris (???), la commande: va te renvoyer la table des liens entre adresse IP et MAC.


    Cyrille

  12. #12
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    Merci pour la réponse,

    mais comme je l'ai indiqué dans mon premier message, la table n'est renseignée qu'en ayant accédé une 1ère fois à la carte. Or pour faire ce 1er accès il me faudrait son IP, que je ne connais justement pas.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 25
    Points
    25
    Par défaut
    Salut

    Si ton admin réseau te le permet (je déconseille vivement de faire ça dans une entreprise sans accord), un wireshark que tu configure pour ne te montrer que les broadcast venant de certaines mac pourrait aider, par exemple ce filtre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (eth.dst == ff:ff:ff:ff:ff:ff) && (eth.addr contains b8:27:eb) && (eth.type == 0x0806)
    devrais capturer les annonces arp venant des mac contenant b827eb.
    Après sur wireshark tu sais la mac et l'ip

    Par contre, la capture doit être lancée avant que le client ne se connecte. Suivant la durée de vie des baux dhcp, tu peux te faire une table de correspondance mac/ip

    Sinon, un nmap peut te faire un scan de plage ip assez rapidement et te donner les systèmes, mais tjr selon la taille du réseau ça peut se révéler vite fastidieux.

    a+

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 33
    Points : 48
    Points
    48
    Par défaut
    Bonjour,
    En programmant sur le PC un message que tu broadcast sur le réseau et en programmant ton raspbery pour qu'il réponde à ce message? (ou vice versa?)

    EDIT: en fait je trouve que la description de ta situation n'est pas très claire: quand tu dis vouloir accéder à ton rPI, c'est bien depuis un ordinateur du même réseau? (et donc ton ordi -portable j'imagine- doit aussi être être en dhcp auto?)
    Décris mieux les conditions réseaux pour que l'on comprenne mieux.

  15. #15
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    Citation Envoyé par devbreizhbugs Voir le message
    EDIT: en fait je trouve que la description de ta situation n'est pas très claire: quand tu dis vouloir accéder à ton rPI, c'est bien depuis un ordinateur du même réseau? (et donc ton ordi -portable j'imagine- doit aussi être être en dhcp auto?)
    Décris mieux les conditions réseaux pour que l'on comprenne mieux.
    Disons que j'ai plusieurs rPI dispersées sur mon réseau. Je veux pouvoir me connecter, depuis un PC par exemple, sur une rPI en particulier.

    En programmant sur le PC un message que tu broadcast sur le réseau et en programmant ton raspbery pour qu'il réponde à ce message? (ou vice versa?)
    Il faudrait donc que je mette une sorte d'agent sur la rPI, à la manière de OCS inventory?

    A+

  16. #16
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 33
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par jackk Voir le message
    Il faudrait donc que je mette une sorte d'agent sur la rPI, à la manière de OCS inventory?
    A+
    Je ne connais pas ce produit. Je pense que si tu faisais un petit programme en C
    qui tourne sur tes raspberry pour écouter un port , et que dès que quelqu'un envoie un message sur ce port (en broadcast, donc sans connaitre l'ip exacte de ton raspberry), ton programme réponde en s'identifiant.

    J'ai fait deux petits programmes exemple qui peuvent te servir de base de travail:

    UDPserveur.c (qui devra être sur chaque raspberry
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    #if defined (WIN32)
        #include <winsock2.h>
    #pragma comment (lib, "Ws2_32.lib")
        typedef int socklen_t;
    #else
        #include <sys/types.h>
        #include <sys/socket.h>
        #include <netinet/in.h>
        #include <arpa/inet.h>
        #include <unistd.h>
        #define INVALID_SOCKET -1
        #define SOCKET_ERROR -1
        #define closesocket(s) close(s)
        typedef int SOCKET;
        typedef struct sockaddr_in SOCKADDR_IN;
        typedef struct sockaddr SOCKADDR;
    #endif
      
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define PORT 6666
      
      
    int main(int argc, char *argv[])
    {
        #if defined (WIN32)
            WSADATA WSAData;
            int erreur = WSAStartup(MAKEWORD(2,2), &WSAData);
        #else
            int erreur = 0;
        #endif
         
        /* Socket et contexte d'adressage du serveur */
         int iResult = 0;
    	SOCKADDR_IN sin;
        SOCKET RecvSocket;
        socklen_t recsize = sizeof(sin);
        char buffer[32] = "Bonjour du serveur!";
        char RecvBuf[128];
        /* Socket et contexte d'adressage du client */
        SOCKADDR_IN RecvAddr;
        socklen_t crecsize = sizeof(RecvAddr);
         
        SOCKADDR_IN SenderAddr;
        int SenderAddrSize = sizeof (SenderAddr);
         
         
        if(!erreur)
        {
    		//-----------------------------------------------
    		// Create a receiver socket to receive datagrams
    		RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    		if (RecvSocket == INVALID_SOCKET) {
    			printf("socket failed\n");
    			return 1;
    		}
    		//-----------------------------------------------
    		// Bind the socket to any address and the specified port.
    		RecvAddr.sin_family = AF_INET;
    		RecvAddr.sin_port = htons(PORT);
    		RecvAddr.sin_addr.s_addr = htonl(INADDR_ANY);
    
    		iResult = bind(RecvSocket, (SOCKADDR *) & RecvAddr, sizeof (RecvAddr));
    		if (iResult != 0) {
    			printf("bind failed\n");
    			return 1;
    		}
    		//-----------------------------------------------
    		// Call the recvfrom function to receive datagrams
    		// on the bound socket.
    		printf("Receiving datagrams...\n");
    		do
    		{
    			memset(RecvBuf, 0, 128);
    			iResult = recvfrom(RecvSocket,   RecvBuf, 128, 0, (SOCKADDR *) & SenderAddr, &SenderAddrSize); // fonction bloquante!
    			if (iResult == SOCKET_ERROR)
    			{
    				printf("recvfrom failed \n");
    			}
    			else
    			{
    				printf("recu de '%s' : %d octets : '%s'\n", inet_ntoa(SenderAddr.sin_addr), iResult, RecvBuf);
    				iResult = sendto(RecvSocket,  argv[0], strlen(argv[0]), 0, (SOCKADDR *) & SenderAddr, SenderAddrSize);
    				if (iResult != SOCKET_ERROR)
    				{
    						printf("sendto: %d octet envoyé\n", iResult);
    				}
    				else
    					printf("erreur sendto!\n");
    			}
    		}while(iResult != SOCKET_ERROR && strcmp(RecvBuf, "quit")!= 0);
    		closesocket(RecvSocket);
            #if defined (WIN32)
    			WSACleanup();
    		#endif
        }
         
        return EXIT_SUCCESS;
    }
    UDPClient.c (qui devra être sur ton ordinateur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    #if defined (WIN32)
        #include <winsock2.h>
     #pragma comment (lib, "Ws2_32.lib")
       typedef int socklen_t;
    #else 
        #include <sys/types.h>
        #include <sys/socket.h>
        #include <netinet/in.h>
        #include <arpa/inet.h>
        #include <unistd.h>
        #define INVALID_SOCKET -1
        #define SOCKET_ERROR -1
        #define closesocket(s) close(s)
        typedef int SOCKET;
        typedef struct sockaddr_in SOCKADDR_IN;
        typedef struct sockaddr SOCKADDR;
    #endif
      
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define PORT 6666
      
      
      
    int main(int argc, char *argv[])
    {
        #if defined (WIN32)
            WSADATA WSAData;
            int erreur = WSAStartup(MAKEWORD(2,2), &WSAData);
        #else
            int erreur = 0;
        #endif
      
        SOCKET sock;
        SOCKADDR_IN sin;
    
        SOCKADDR_IN SenderAddr;
        int SenderAddrSize = sizeof (SenderAddr);
    
    	int broadcastPermission;          /* Socket opt to set permission to broadcast */
    
        printf("Usage: %s <ip cible> <textesansespace>\n", argv[0]);
        if(!erreur && argc > 2)
        {
    		
    		char buff[255]; // 'quit' stop le serveur
    		int iResult;
    
    		strcpy(buff, argv[2]);
    
    		/* Création de la socket */
    		sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    
    		broadcastPermission = 1;
    		if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (void *) &broadcastPermission,  sizeof(broadcastPermission)) < 0)
            {
    			printf("setsockopt() failed\n");
    			closesocket(sock);
    			 #if defined (WIN32)
    				 WSACleanup();
    			 #endif
    			return 0;
    		}
    
    
            /* Configuration de la connexion */
            sin.sin_addr.s_addr = inet_addr(argv[1]);
    //        sin.sin_addr.s_addr = inet_addr("127.0.0.1");
            sin.sin_family = AF_INET;
            sin.sin_port = htons(PORT);
      
            /* Si le client arrive à se connecter */
    		printf("Sending a datagram to the receiver...\n");
    		iResult = sendto(sock,  buff, strlen(buff)+1, 0, (SOCKADDR *) & sin, sizeof (sin));
    		if (iResult != SOCKET_ERROR)
    		{
    			int i;
    			printf("sendto: %d octet envoyé\n", iResult);
    			//pour recevoir une réponse, le client doit se transfromer en serveur et attendre que le serveur intiial se conecte a lui:
    			for (i = 0; i < 2; i++)
    			{
    				memset(buff, 0, 255);
    				iResult = recvfrom(sock,   buff, 255, 0, (SOCKADDR *) & SenderAddr, &SenderAddrSize); // fonction bloquante!
    				if (iResult == SOCKET_ERROR)
    					printf("recvfrom failed \n");
    				else
    					printf("%d - reponse de '%s' : %d octets : '%s'\n", i, inet_ntoa(SenderAddr.sin_addr), iResult, buff);
    			}
    		}
            else
                printf("erreur sendto!\n");
      
            /* On ferme la socket précédemment ouverte */
            closesocket(sock);
      
            #if defined (WIN32)
                WSACleanup();
            #endif
        }
      
        return EXIT_SUCCESS;
    }
    donne comme résultat:


    -Windows a pour adresse 192.168.1.10
    -la VMubuntu a pour adresse 192.168.1.11 (en mode bridge adapter)
    1-Dans les deux fenêtres du haut (une sous windows, l'autre sous VM ubuntu), tourne le serveur (dans ton cas cela représenterait donc deux raspberry)(le serveur devrait être lancer au demarrage du raspberry)
    Dans la fenêtre du bas, tourne le client (sous windows)
    2-le client cherche a connaitre qui est la et envoie un message (le deuxième argument en ligne de commande) en broadcast sur 192.168.1.255
    3-chaque serveur reçoit le message et répond à l'adresse d'où viens le message
    4-comme le client sait qu'il n'y a que 2 serveurs il n'attends que deux réponses, (recvfrom est bloquant), mais il doit y avoir moyen de faire mieux.

    Voila ce n'est pas utilisable en tant que tel, mais cela devrait pouvoir te servir de base de travail pour faire ce que tu désires.

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/10/2009, 16h07
  2. Recherche avec tout ou partie d'une valeur
    Par Orakle dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/05/2008, 17h09
  3. Récupérer une petite partie d'une vidéo
    Par °°° Zen-Spirit °°° dans le forum Flash
    Réponses: 13
    Dernier message: 07/10/2006, 18h35
  4. Récupérer une petite partie d'une vidéo
    Par °°° Zen-Spirit °°° dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 06/10/2006, 16h09
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo