Grave pb Raw socket

cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011 - 1 juil. 2004 à 17:09
bakonu Messages postés 2 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 30 août 2005 - 30 août 2005 à 21:25
Bonjour,

J'essaie d'utiliser les Raw Socket afin de voir tout ce qui passe sur le reseau, ne garder que ce qui me concerne, et calculer le nbre de trames recues, le nbre de trames envoyées et le nbre de trames erronées. Pour cela, il faut donc que j'utilise les raw sockets pour voir ce qui se passe.
Je suis sous 2000, (en admin), apres avoir créé un raw socket (comme toi), je fais:

/* Place en mode promiscuous lesocket */
if (WSAIoctl(sock, SIO_RCVALL, &dwBufferInLen, sizeof(dwBufferInLen), NULL, 0,&dwBytesReturned , NULL , NULL) == SOCKET_ERROR)....
cependant, j'ai une erreur a l'execution (erreur 10022 = argument invalide). Je pense que ça vient du 2ème paramètre, c'est le controlCode. Je ne sais pas ce que ce code représente, mais g vu sur le net qu'il fallait mettre la valeur:
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)

Je suis completement bloquée, je ne comprends pas où est l'erreur puisque je ne comprends pas ce qu'est ce ControlCode.
Pourriez vous m'expliquer voire, me corriger !!

merci bcp
Valoue

5 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
1 juil. 2004 à 17:18
Salut,
Avec SIO_RCVALL tu aura des infos sur les paquets recus mais pas sur les paquets envoyés.
Pour avoir des infos sur tout les paquets, GetIpStatistics(...)
0
cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011
1 juil. 2004 à 17:23
Alors, je n'ai pas besoin d'appeller la methode

/* Place en mode promiscuous lesocket */
if (WSAIoctl(sock, SIO_RCVALL, &dwBufferInLen, sizeof(dwBufferInLen), NULL, 0,&dwBytesReturned , NULL , NULL) == SOCKET_ERROR)....

Pas besoin de passer dans ce mode alors ??
Et est ce que l'OS (2000) va m'empecher de voir ce que je veux ??

Merci de ta reponse, toujours au rdv !!! c genial !

Valoue
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
1 juil. 2004 à 17:38
Salut,
Les raw sockets ne te permetent pas d'obtenir ce que tu veux. Tu n'aura que le nombre de paquet entrant + nombre de paquet erronés, et cela a partir du moment ou lance ton programe.

Pour l'OS, je pense qu'il n'y a aucun probleme.
0
cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011
2 juil. 2004 à 08:47
merci bcp aardman !
je vois ce que tu veux dire.

Je vais utiliser le getIpStatistics(), g regardé dans les MID et ça a l'air impec !
En plus, y'a les mêmes services sous Linux, donc impec !!!

Merci pour tout ! Je suis d'un côté rassurée de ne pas avoir a utiliser les raw sockets ! pioooo !!

A plus (toujours et encore des soucis, toujours et encore des question !!)
Valoue
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bakonu Messages postés 2 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 30 août 2005
30 août 2005 à 21:25
bonjour,

je viens de prendre la conversation en cours, et j'aimerais savoir comment on fait pour passer en mode promiscuous avec la fonction WSAIoctl.

ce que je veux, c'est pouvoir récupérer toutes les trames tcp qui passe sur ma machine et les analysées.

merci
0
Rejoignez-nous