Résultats de 1 à 8 sur 8

Sujet : identifier un PC, adresse MAC ou IP

  1. #1
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517

    identifier un PC, adresse MAC ou IP

    Bonjour,

    j\'aurrais voulu connaitre la fonction qui me permettrait d\'indentifier chaque PC, du style :
    Code:
    int ReturnNumeroSerie(...)
    Qui me retourne le numero de serie par ex.
    Avec la lib à #include


    Merci
    :wink:
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    Ou bien une fonction qui donnerait l\'adresse IP ! :?:
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

  3. #3
    Visiteur MP
    Visiteur MP
    L\'@ Ip c qqe chose possible je sais ! mais je sais plus comme librairie de tete :
    Pe etre dans un truc du style :

    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    #include <netdb.h>

    Par contre je vois pas de quoi tu parle quant tu dis numéro de serie ! c\'est quoi ?

  4. #4
    Visiteur MP
    Visiteur MP
    Quand je parle d\'un numero de serie, j\'entends par la qu\'il faut que je puisse identifier chaque ordinateur, qu\'il soit connecté au net ou non. nous avons pour etre identifé soit le numero de la carte d\'identite soit le numero secu. Et pour les ordi, qu\'est ce qui existe ?
    Soit en identifiant le microprocesseur soit en identifiant le DD, voire une autre solution.
    En attente de propositions et solutions, merci.

  5. #5
    Visiteur MP
    Visiteur MP
    a mon avis, tu devré utiliser l\'@ mac ! il me semble que c la seule donnée qui est recuperable sur le reseau, permettant d\'identifier une machine de manière unique ! elle est falsifiable et je c pas si elle est bonne pour internet a cause des problemes de routages ! mais pour du local c bon !
    Je ne c pas comment la recupéré en C en plus, et je c pas si c possible ! en shell sous linux je c que c possible

  6. #6
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    Le truc c qu\'il me faudrait l\'identifier sans qu\'il ne soit connecté à un réseau. C\'est pour un stage, mon patron :evil: voudrait interdire le piratage de ses logiciels. Ainsi, le logiciel ne serait installe que sur une seule machine. :8O:
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

  7. #7
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    L adresse MAC (voir fgazier), est en effet de mon avis, le mieux pour identifier de façon unique une machine.

    Par contre si le PC n\'est pas connecté, je ne voie pas ou est le risque de piratage ? et du coup pas besoin d\'identifiant unique.

    Par contre on peut envisager le prob a l\'envers, si tu connais les machines légitimes, alors tu peux leur donner un numero unique dispo a travers une solution logiciel de type client serveur perso (donc difficile a violer) pour les identifier et leur donner les droits auquelles elles peuvent pretendre.

    Si le pc ne repond pas a un moment, c\'est qu\'il n\'est donc pas légitime, et la a toi de prendre le max d\'info avant de le virer du reseau...

  8. #8
    Membre MP
    Inscrit
    août 2013
    Messages
    1 012
    Bon voici une fonction que j\'ai programmé en C++ il y a quelques mois, donc voilà code qui écrit l\'IP dans la console, tu peux l\'éditer pour que l\'IP soit retournée...

    Code:
    void GetIp( )
    {
    	// Déclaration d\'une instance de la structure sockaddr_in qui est \'friend\' de SOCKADDR
    	struct	sockaddr_in	sAddIn;
    	// Déclaration d\'une instance HOSTENT, pour l\'host
    	struct	hostent		*sHostent;
    	char	FAR			buffer[ 64 ] = \&quot;\&quot;;
    	// La version des winsock (nous utiliserons 2.0)
    	WORD				wVersionRequested;
    	WSADATA				wsaData;
    	int					iErr = 0;
    
    	// Dit quelle version nous allons utiliser
    	wVersionRequested	= MAKEWORD( 1, 1 );
    	// Si ça rate iErr retourne 1 (WSAStartup initialise les méthodes des winsocks
    	iErr				= WSAStartup( wVersionRequested, &amp;wsaData );
    	if ( iErr != 0 )
    		std::cerr	&lt;&lt; \&quot;Detection de la connection impossible!\\n\&quot;;
    
    	// buffer reçoit l\'host de l\'ordinateur en format char *(pas encore le bon format :) )
    	gethostname( buffer, sizeof( buffer ) );
    	// Et voilà donc le bon format de l\'host de votre ordinateur, il est stocké dans sHostent
    	sHostent	= gethostbyname( buffer );
    	// Si sHostent ne peut pas récupérer d\'host...
    	if( sHostent == NULL )
    	{
    		std::cerr &lt;&lt; \&quot;Erreur : pointeur NULL\&quot;;
    		// Delete tous ce que les winsocks ont alloués
    		WSACleanup();
    	}
    
    	int i = 0 ;
    	// Récupère toutes les adresses, host de notre carte(modem..)...
    	while( ( sHostent-&gt;h_addr_list[ i + 1 ] ) != NULL )
    	{
    		i++;
    	}
    
    	// Stocke les informations dans sAddIn et permet de récupérer les adresses IP :)
    	memcpy(	&amp;sAddIn.sin_addr.s_addr, sHostent-&gt;h_addr_list[ i ], sHostent-&gt;h_length );
    
    	std::cout	&lt;&lt; \&quot;Host: \&quot;
    				&lt;&lt; buffer	// buffer contient l\'host (depuis: gethostbyname( buffer );
    				&lt;&lt; std::endl
    				&lt;&lt; \&quot;Ip : \&quot;
    				&lt;&lt; inet_ntoa( sAddIn.sin_addr ) // Transforme sAddIn en format caracères
    				&lt;&lt; std::endl;
    
    	WSACleanup( );
    }
    Esperons que le code est lisible assez car les balise code du forum pourrait casser ca

    enfin bonne chance pour l\'utiliser, ciao
    Grégory S.

    eVias Web & Software Solutions.

    Développement Web et logiciel en tout genre et Open Source.

    FOSDEM 2008. Venez -y nombreux !

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Please disable Adblock!