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 :

Récupérer les infos de session


Sujet :

Windows

  1. #1
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut Récupérer les infos de session
    Bonjour,

    J'aimerais savoir vers quelles fonctions m'orienter pour récupérer l'adresse IP de la machine, le nom d'utilisateur ainsi que le nom de domaine pour une session donnée.

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Quel type de session ? TSE ? Accès à un partage ? Ouverture sur AD ?

    Dans le premier et le dernier cas, utilise une fonction dans ton logon script qui trace les utilisateurs qui se connectent.

  3. #3
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut
    Je ne connais pas le terme technique, mais je parle de la session windows, au démarrage de l'ordinateur. Les identifiants avec lesquels je me connecte sur l'active directory.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ok, donc à chaque ouverture de session dite interactive, on peut exécuter un script d'ouverture de session. Ce script s'exécute localement sur la machine sur laquelle tu ouvres la session.

    Donc dans ce script (le créer s'il n'existe pas), ajoute une fonction pour récupérer les données que tu veux.

    Si tu n'es pas l'admin AD, vois avec celui qui s'en occupe.

  5. #5
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut
    En fait, j'aimerais récupérer les données pour les intégrer dans un programme C++, et ensuite, après traitement, enregistrer les données dans une base de données.

    Il n'y a des fonctions de l'API Windows permettant de récupérer ces infos?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Sans aller jusque là, un ipconfig et lecture des variables d'environnement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USERDNSDOMAIN
    USERDOMAIN
    USERNAME

  7. #7
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut
    Merci pour ces variables d'environnement, ça sera une manière de faire si je ne trouve pas à quelles fonctions de l'API elles correspondent

  8. #8
    Invité
    Invité(e)
    Par défaut
    Tu as tout dans la librairie MSDN, mais pour ce que tu veux faire, je trouve que tu vas prendre un rouleau compresseur pour écraser une mouche...

    Mais libre à toi

  9. #9
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Pour ta première question : Comment récupérer l'adresse d'une machine dont on connaît le nom ?.

    Pour le nom de l''utilisateur actuellement connecté, Windows est un système multi-utilisateur c'est-à-dire qui permet à plusieurs utilisateurs de travailler simultanément sur une même machine. Il peut donc y avoir plus d'un utilisateur connecté. Pour connaître le nombre d'utilisateurs actuellement connectés, utilise la fonction NetWkstaGetInfo avec comme paramètre level = 102. Appelle ensuite la fonction NetWkstaUserEnum pour avoir des informations (incluant le nom ...) sur ces différents utilisateurs.

    NetWkstaGetInfo permet également de connaître le domaine auquel appartient la machine. Lis bien la doc.

    Inutile de te faire remarquer que la méthode prescrite par Kuzco est, dans la plupart du cas, celle qui est à préférer en raison de sa simplicité. Utilise la fonction ExpandEnvironmentStrings (Win32) ou tout simplement getenv (ANSI C).

  10. #10
    Invité
    Invité(e)

  11. #11
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut
    Merci pour vos réponses.
    Je me mets au travail ^^

  12. #12
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut
    J'ai testé la fonction que Melem m'a proposé.
    Voici l'erreur qui est générée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    c:\program files\microsoft visual studio\vc98\include\lmwksta.h(41) : error C2146: syntax error : missing ';' before identifier 'NET_API_FUNCTION'
    c:\program files\microsoft visual studio\vc98\include\lmwksta.h(41) : error C2501: 'NET_API_STATUS' : missing storage-class or type specifiers
    c:\program files\microsoft visual studio\vc98\include\lmwksta.h(41) : fatal error C1004: unexpected end of file found
    D'après MSDN, il faut inclure lmwksta.h et netapi32.lib (section link de visual studio?) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    QuickInfo
      Windows NT: Requires version 3.1 or later.
      Windows: Unsupported.
      Windows CE: Unsupported.
      Header: Declared in lmwksta.h.
      Import Library: Use netapi32.lib.
    Ca dit aussi que c'est supporté seulement par Windows NT. J'ai Windows XP. Ca correspond à Windows ou Windows NT?

    Merci d'avance

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Windows XP correspond à Windows NT 5.1 (et Vista à Windows NT 6.0), donc c'est bon.

  14. #14
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par Trunks Voir le message
    J'ai testé la fonction que Melem m'a proposé.
    Voici l'erreur qui est générée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    c:\program files\microsoft visual studio\vc98\include\lmwksta.h(41) : error C2146: syntax error : missing ';' before identifier 'NET_API_FUNCTION'
    c:\program files\microsoft visual studio\vc98\include\lmwksta.h(41) : error C2501: 'NET_API_STATUS' : missing storage-class or type specifiers
    c:\program files\microsoft visual studio\vc98\include\lmwksta.h(41) : fatal error C1004: unexpected end of file found
    D'après MSDN, il faut inclure lmwksta.h et netapi32.lib (section link de visual studio?) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    QuickInfo
      Windows NT: Requires version 3.1 or later.
      Windows: Unsupported.
      Windows CE: Unsupported.
      Header: Declared in lmwksta.h.
      Import Library: Use netapi32.lib.
    Ca dit aussi que c'est supporté seulement par Windows NT. J'ai Windows XP. Ca correspond à Windows ou Windows NT?

    Merci d'avance
    Poste ton code s'il te plaît.
    D'après MSDN, il faut inclure lmwksta.h
    Non. D'après MSDN, il faut inclure lm.h qui inclut lmwksta.h qui contient entre autres la déclaration de la fonction.

  15. #15
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut
    Ca marche en ajoutant le header lmcons.h

    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
    #include <lmcons.h>
    #include <lmerr.h>
    #include <lmshare.h>
    #include <lmapibuf.h>
    #include <lmwksta.h>
    
    void						CSessionObserver::GetInfos()
    {
    	NET_API_STATUS			status;
    	LPBYTE				buf;
    	LPWKSTA_INFO_102		info;
    
    	status = NetWkstaGetInfo(NULL, 102, &buf);
    
    	if (!status)
    		info = (LPWKSTA_INFO_102) buf;
    }
    Par contre, info est correctement initialiser en Unicode, j'ai les bonnes données, mais en ANSI, je n'ai pas les bonnes données ...

    Puis, avec la fonction NetWkstaUserEnum(), wkui1_username donne le nom de l'ordinateur, et non pas le nom de celui qui s'est logué.

  16. #16
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Apparemment, ces chaînes sont systématiquement en unicode; ce ne sont pas des TCHAR.

  17. #17
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Apparemment, ces chaînes sont systématiquement en unicode; ce ne sont pas des TCHAR.
    Oui, c'est ce qu'indique MSDN, cependant, lorsque je fais F12, j'ai la structure suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    typedef struct _WKSTA_INFO_102 {
        DWORD   wki102_platform_id;
        LPTSTR  wki102_computername;
        LPTSTR  wki102_langroup;
        DWORD   wki102_ver_major;
        DWORD   wki102_ver_minor;
        LPTSTR  wki102_lanroot;
        DWORD   wki102_logged_on_users;
    }WKSTA_INFO_102, *PWKSTA_INFO_102, *LPWKSTA_INFO_102;
    Donc, sensé fonctionner aussi bien en Unicode, qu'en ANSI. Mais bon, c'est un détail, je vais me contenter exclusivement de l'Unicode

  18. #18
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <lmcons.h>
    #include <lmerr.h>
    #include <lmshare.h>
    #include <lmapibuf.h>
    #include <lmwksta.h>
    Je me demande bien à quoi sert la documentation si tu programmes comme ça ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <windows.h>
    #include <lm.h>
    Cherche pas à faire plus compliqué.

    status = NetWkstaGetInfo(NULL, 102, &buf);
    Non c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    status = NetWkstaGetInfo(NULL, 102, (LPBYTE)&info);
    Tu n'as pas besoin de la variable buf, que tu utilises d'ailleurs très mal ...

    Par contre, info est correctement initialiser en Unicode, j'ai les bonnes données, mais en ANSI, je n'ai pas les bonnes données ...
    Windows NT utilise en interne UNICODE et non ANSI. Certaines fonctions ne sont disponibles qu'en version UNICODE ...

    Puis, avec la fonction NetWkstaUserEnum(), wkui1_username donne le nom de l'ordinateur, et non pas le nom de celui qui s'est logué.
    Comment veux-tu qu'on sache ce qui ne va pas dans ton programme si tu ne nous montre pas ton code ? Essaie ça :
    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
    104
    105
    106
    107
    108
    109
    110
    #ifndef UNICODE
    #define UNICODE
    #endif
    
    #include <stdio.h>
    #include <assert.h>
    #include <windows.h>
    #include <lm.h>
    
    int wmain(int argc, wchar_t *argv[])
    {
       LPWKSTA_USER_INFO_0 pBuf = NULL;
       LPWKSTA_USER_INFO_0 pTmpBuf;
       DWORD dwLevel = 0;
       DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH;
       DWORD dwEntriesRead = 0;
       DWORD dwTotalEntries = 0;
       DWORD dwResumeHandle = 0;
       DWORD i;
       DWORD dwTotalCount = 0;
       NET_API_STATUS nStatus;
       LPTSTR pszServerName = NULL;
    
       if (argc > 2)
       {
          fwprintf(stderr, L"Usage: %s [\\\\ServerName]\n", argv[0]);
          exit(1);
       }
       // The server is not the default local computer.
       //
       if (argc == 2)
          pszServerName = argv[1];
       fwprintf(stderr, L"\nUsers currently logged on %s:\n", pszServerName);
       //
       // Call the NetWkstaUserEnum function, specifying level 0.
       //
       do // begin do
       {
          nStatus = NetWkstaUserEnum(pszServerName,
                                     dwLevel,
                                     (LPBYTE*)&pBuf,
                                     dwPrefMaxLen,
                                     &dwEntriesRead,
                                     &dwTotalEntries,
                                     &dwResumeHandle);
          //
          // If the call succeeds,
          //
          if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA))
          {
             if ((pTmpBuf = pBuf) != NULL)
             {
                //
                // Loop through the entries.
                //
                for (i = 0; (i < dwEntriesRead); i++)
                {
                   assert(pTmpBuf != NULL);
    
                   if (pTmpBuf == NULL)
                   {
                      //
                      // Only members of the Administrators local group
                      //  can successfully execute NetWkstaUserEnum
                      //  locally and on a remote server.
                      //
                      fprintf(stderr, "An access violation has occurred\n");
                      break;
                   }
                   //
                   // Print the user logged on to the workstation.
                   //
                   wprintf(L"\t-- %s\n", pTmpBuf->wkui0_username);
    
                   pTmpBuf++;
                   dwTotalCount++;
                }
             }
          }
          //
          // Otherwise, indicate a system error.
          //
          else
             fprintf(stderr, "A system error has occurred: %d\n", nStatus);
          //
          // Free the allocated memory.
          //
          if (pBuf != NULL)
          {
             NetApiBufferFree(pBuf);
             pBuf = NULL;
          }
       }
       //
       // Continue to call NetWkstaUserEnum while
       //  there are more entries.
       //
       while (nStatus == ERROR_MORE_DATA); // end do
       //
       // Check again for allocated memory.
       //
       if (pBuf != NULL)
          NetApiBufferFree(pBuf);
       //
       // Print the final count of workstation users.
       //
       fprintf(stderr, "\nTotal of %d entries enumerated\n", dwTotalCount);
    
       return 0;
    }

  19. #19
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par Trunks Voir le message
    Oui, c'est ce qu'indique MSDN, cependant, lorsque je fais F12, j'ai la structure suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    typedef struct _WKSTA_INFO_102 {
        DWORD   wki102_platform_id;
        LPTSTR  wki102_computername;
        LPTSTR  wki102_langroup;
        DWORD   wki102_ver_major;
        DWORD   wki102_ver_minor;
        LPTSTR  wki102_lanroot;
        DWORD   wki102_logged_on_users;
    }WKSTA_INFO_102, *PWKSTA_INFO_102, *LPWKSTA_INFO_102;
    Donc, sensé fonctionner aussi bien en Unicode, qu'en ANSI. Mais bon, c'est un détail, je vais me contenter exclusivement de l'Unicode
    Mais ton MSDN est vieux de 10 ans ... Je vois que tu n'as suivi aucun des liens que je t'ai donné.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    typedef struct _WKSTA_INFO_102 {
      DWORD wki102_platform_id;
      LMSTR wki102_computername;
      LMSTR wki102_langroup;
      DWORD wki102_ver_major;
      DWORD wki102_ver_minor;
      LMSTR wki102_lanroot;
      DWORD wki102_logged_on_users;
    } WKSTA_INFO_102, 
     *PWKSTA_INFO_102, 
     *LPWKSTA_INFO_102;
    ...

    wki102_computername
    Pointer to a string specifying the name of the local computer.
    This string is Unicode if _WIN32_WINNT or FORCE_UNICODE are defined.

    ...

  20. #20
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut
    C'est vrai que je n'avais pas suivi les liens que tu m'avais donné.
    J'avais copié le nom des fonctions, et les avais copié dans mon MSDN, car selon moi c'est plus rapide à charger, et mon MSDN correspond à la version de Visual C++ que j'ai 6.0, alors que si je prends un MSDN externe, alors il peut avoir des différences (par exemple fopen, il y a l'option encoding à partir de 2003 qui n'existe pas dans ma version).

    J'avoue que je ne suis pas à l'aise avec l'API Windows, je suis habitué au standard sous l'environnement Unix et j'ai encore un peu de mal, mais bon, pas le choix, je dois m'adapter.

    Bref, avec l'exemple que tu m'as donné, ça marche, je te remercie infiniment (ainsi que les autres intervenants).


+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Gadgets google, récupérer les infos de session
    Par piotrr dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/12/2009, 11h35
  2. Réponses: 0
    Dernier message: 27/07/2009, 15h28
  3. Récupérer les infos de session depuis un trigger
    Par ZashOne dans le forum PL/SQL
    Réponses: 1
    Dernier message: 31/12/2008, 15h40
  4. Récupérer les infos sur un fichier audio
    Par Halleck dans le forum Windows
    Réponses: 13
    Dernier message: 17/04/2004, 18h39
  5. Réponses: 6
    Dernier message: 23/12/2003, 15h30

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