Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gestion réseau avancé en .NET

6 réponses
Avatar
TigrouMeow
Hello :)

J'aimerais pouvoir concocter mes propres paquets et analyser
moi même les paquets (début de trame fin de trame, checksum..)
tout par moi même. Y'a t-il une librairie C# qui permet de faire
ça ? Ou peut-etre .net le permet déjà mais.. j'ai pas trouvé !

Merci de votre aide.

--
Meow ;o)

6 réponses

Avatar
Arnaud Debaene
TigrouMeow wrote:
Hello :)

J'aimerais pouvoir concocter mes propres paquets et analyser
moi même les paquets (début de trame fin de trame, checksum..)
tout par moi même.


A quel niveau? Ethernet? IP? TCP/UDP? Autre?

Y'a t-il une librairie C# qui permet de faire
ça ? Ou peut-etre .net le permet déjà mais.. j'ai pas trouvé !


Le plus bas niveau où tu puisses descendre en .NET correspond aux "raw
socket" (option SocketType.Raw à la création du socket), qui permet de
construire toi-même le header IP des paquets, et donc de travailler avec des
protocoles comme ICMP. Tu devra chercher toute la documentationsur le sujet
dans la doc du Platform SDK, la documentation des classes .NET n'expliquant
pour ainsi dire rien sur le sujet.

Si tu veux descendre plus bas (Ethernet par exemple), tu va devoir utiliser
des librairies spécialisées comme WinPcap ou te coltiner toi-même un driver.
Dans tous les cas, tu sortira du doamine purement managé.

Arnaud
MVP - VC
Avatar
TigrouMeow
"Arnaud Debaene" a écrit dans le message de
news: e28%
TigrouMeow wrote:
Hello :)

J'aimerais pouvoir concocter mes propres paquets et analyser
moi même les paquets (début de trame fin de trame, checksum..)
tout par moi même.


A quel niveau? Ethernet? IP? TCP/UDP? Autre?

Y'a t-il une librairie C# qui permet de faire
ça ? Ou peut-etre .net le permet déjà mais.. j'ai pas trouvé !


Le plus bas niveau où tu puisses descendre en .NET correspond aux "raw
socket" (option SocketType.Raw à la création du socket), qui permet de
construire toi-même le header IP des paquets, et donc de travailler avec
des protocoles comme ICMP. Tu devra chercher toute la documentationsur le
sujet dans la doc du Platform SDK, la documentation des classes .NET
n'expliquant pour ainsi dire rien sur le sujet.

Si tu veux descendre plus bas (Ethernet par exemple), tu va devoir
utiliser des librairies spécialisées comme WinPcap ou te coltiner toi-même
un driver. Dans tous les cas, tu sortira du doamine purement managé.



En effet c'est plutôt l'Ethernet qui m'interresse. Je connais WinPcap mais
il
me semble que c'est du C++, penses tu que cette librairie soit facilement
utilisable avec du C# ? Merci beaucoup de ta réponse en tout cas :)
Avatar
Arnaud Debaene
TigrouMeow wrote:
En effet c'est plutôt l'Ethernet qui m'interresse. Je connais WinPcap
mais il
me semble que c'est du C++, penses tu que cette librairie soit
facilement utilisable avec du C# ?


Le mieux est de l'utiliser en C++ managé (assembly mixte). Eventuellement tu
peux faire un wrapper C++ managé que tu utilises depuis du C#. Dans
l'ensemble, ce sera probablement plus imple d'écrire ton appli en C++...

Arnaud
MVP - VC
Avatar
Simon Mourier [MS]
On trouve quelques exemples ici d'utilisation de winpcap en C#

http://codeproject.com/dotnet/dotnetwinpcap.asp
http://codeproject.com/csharp/pktcap.asp

Simon.

"TigrouMeow" a écrit dans le message de
news: 42187d17$0$18461$
"Arnaud Debaene" a écrit dans le message de
news: e28%
TigrouMeow wrote:
Hello :)

J'aimerais pouvoir concocter mes propres paquets et analyser
moi même les paquets (début de trame fin de trame, checksum..)
tout par moi même.


A quel niveau? Ethernet? IP? TCP/UDP? Autre?

Y'a t-il une librairie C# qui permet de faire
ça ? Ou peut-etre .net le permet déjà mais.. j'ai pas trouvé !


Le plus bas niveau où tu puisses descendre en .NET correspond aux "raw
socket" (option SocketType.Raw à la création du socket), qui permet de
construire toi-même le header IP des paquets, et donc de travailler avec
des protocoles comme ICMP. Tu devra chercher toute la documentationsur le
sujet dans la doc du Platform SDK, la documentation des classes .NET
n'expliquant pour ainsi dire rien sur le sujet.

Si tu veux descendre plus bas (Ethernet par exemple), tu va devoir
utiliser des librairies spécialisées comme WinPcap ou te coltiner
toi-même un driver. Dans tous les cas, tu sortira du doamine purement
managé.



En effet c'est plutôt l'Ethernet qui m'interresse. Je connais WinPcap mais
il
me semble que c'est du C++, penses tu que cette librairie soit facilement
utilisable avec du C# ? Merci beaucoup de ta réponse en tout cas :)



Avatar
TigrouMeow
"Arnaud Debaene" a écrit dans le message de
news: %23E7A1%
TigrouMeow wrote:
En effet c'est plutôt l'Ethernet qui m'interresse. Je connais WinPcap
mais il
me semble que c'est du C++, penses tu que cette librairie soit
facilement utilisable avec du C# ?


Le mieux est de l'utiliser en C++ managé (assembly mixte). Eventuellement
tu peux faire un wrapper C++ managé que tu utilises depuis du C#. Dans
l'ensemble, ce sera probablement plus imple d'écrire ton appli en C++...



Oui je pense aussi je vais pas m'embéter à faire un wrapper pour ce que je
vais faire ! Merci à toi :)
Avatar
TigrouMeow
"Simon Mourier [MS]" a écrit dans le message
de news:
On trouve quelques exemples ici d'utilisation de winpcap en C#

http://codeproject.com/dotnet/dotnetwinpcap.asp
http://codeproject.com/csharp/pktcap.asp

Simon.



Merci beaucoup, ces liens sont excellents !