Résultats de 1 à 2 sur 2

Sujet : adresse ip de la connexion internet

  1. #1
    Visiteur MP
    Visiteur MP

    adresse ip de la connexion internet

    Bonjour,

    Je récupère les adresses IP de ma machine présentes dans la structure hostent, mais je voudrais savoir s\'il existe une fonction sous visual qui me permettrait soit de connaître directement l\'adresse ip de la connexion internet, soit qui, en lui fournissant une adresse ip, indique si c\'est celle qui correpond à la connexion internet.

    J\'avais pensé utiliser la classe de l\'adresse ip, mais si l\'utilisateur a paramétré une adresse quelconque en local, ça ne marchera pas.

    On pourrait aussi essayer de \"pinger\" un site, mais ça ne me semble pas très \"propre\".

    Sinon, il faudrait peut-être voir la base des registres, mais là, je ne sais pas du tout comment faire.

    Merci d\'avance.

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    1 012
    Voici un programme que je viens de faire, rapidement mais il n\'y a pas d\'erreur lors de la compilation! Il renvoit l\'host de l\'ordi et l\'ip, normalement ça devrait être la bonne! sinon dis-le et je relookerai

    Code:
    #include <iostream>
    #include <cstdlib>
    #include <windows.h>
    
    void GetIp( );
    
    int main ( void )
    {
    	GetIp( );
    	cout << \"Code by [DmXx] - DarkProggers\\n\";
    	system( \"pause\" );
    	return 0;
    }
    
    void GetIp( )
    {
    	struct	sockaddr_in	sAddIn;
    	struct	hostent	 *sHostent;
    	char	FAR	 buffer[ 64 ] = \"\";
    	WORD	wVersionRequested;
    	WSADATA		 wsaData;
    	int		 iErr = 0;
    	
    	wVersionRequested	= MAKEWORD( 1, 1 );
    	iErr		= WSAStartup( wVersionRequested, &wsaData );
    	if ( iErr != 0 )
    		std::cerr	<< \"Detection de la connection impossible!\\n\";
    
    	gethostname( buffer, sizeof( buffer ) );
    	sHostent	= gethostbyname( buffer );
    	if( sHostent == NULL )
    	{
    		std::cerr << \"Erreur : pointeur NULL\";
    		WSACleanup();
    	}
    	
    	int i = 0 ;
    	while( ( sHostent->h_addr_list[ i + 1 ] ) != NULL )
    	{
    		i++;
    	}
    	
    	memcpy(&sAddIn.sin_addr.s_addr, sHostent->h_addr_list[ i ], sHostent->h_length );
    			
    	std::cout	<< \"Host: \"
    				<< buffer
    				<< std::endl
    				<< \"Ip : \"
    				<< inet_ntoa( sAddIn.sin_addr )
    				<< std::endl;
    
    	WSACleanup( );	
    }

    Amicalement

    [DmXx]
    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é