Objet : Liste pour les discussions techniques (liste à inscription publique)
Archives de la liste
- From: Mathieu Ignacio <mignacio AT april.org>
- To: Liste de diffusion technique <technique AT april.org>
- Subject: Re: [TECH] Programmation socket, AF_INET, bind, udp
- Date: Sat, 01 Nov 2008 16:30:01 +0100
Benoît Ganne wrote:
Ben normalement tu peux filtrer dans le noyau les paquets quiBonne idée, je vais regarder ça. Merci.
t'intéressent via BPF (BSD Packet Filter) dont l'équivalent sous Linux
est LPF (Linux Packet Filter). En fait l'interface Linux est binairement
compatible avec celle de BSD, donc c'est normalement cross-system (BSD
<-> Linux).
Tu peux voir des exemples d'utilisation de BPF/LPF dans le code de pumpPar contre là j'ai des doutes, pump ouvre bien les socket en PF_PACKET, mais il me semble qu'il fait lui même un bête tri à posteriori.
par exemple, un client DHCP léger pour UNIX (il l'utilise précisément
pour recevoir les paquets DHCP :), ça peut donc reservir).
Autre possiblité, utiliser libpcap, la librairie de tcpdump et deJe trouve ces outils intéressants, mais trop lourds pour faire un programme simple qui va récuperer 3 paquets dans la journée...
wireshark qui masquent un peu (un peu seulement) la complexité de BPF
avec l'avantage de faciliter le portage entre les plateformes. Il existe
des bindings python pour libpcap comme http://code.google.com/p/pypcap/,
http://sourceforge.net/projects/pylibpcap ou
http://oss.coresecurity.com/projects/pcapy.html.
Enfin, as-tu regardé du côté de scapy
(http://www.secdev.org/projects/scapy/) ? C'est une boîte à outil très
puissante d'analyse/filtrage des paquets pour python, je pense que ça te
simplifierait pas mal la tâche.
J'ai donc essayé d'utiliser une socket PF_PACKET, et je n'ai aucun problème lorsque l'interface est monté, mais mon recv/recvfrom me renvoit une erreur "Network is down" si l'interface est down. Quelqu'un a-t-il un pointeur sur une doc qui pourrait m'aider à résoudre ce problème ? J'ai bien essayé de récupérer les bouts de code C de pump et udhcpc pour faire qlq tests, mais je ne code plus des masses en C depuis quelques années (python forever !), et le remplissage des structures sockets me pose bien des problèmes.
Merci pour tout.
a+.
--
Mathieu
http://matou.isanerd.net/
- Re: [TECH] Programmation socket, AF_INET, bind, udp, Mathieu Ignacio, 01/11/2008
- Re: [TECH] Programmation socket, AF_INET, bind, udp, Mathieu Ignacio, 08/11/2008
- RE: [TECH] Programmation socket, AF_INET, bind, udp, Daniel Daube, 09/11/2008
- Re: [TECH] Programmation socket, AF_INET, bind, udp, Lionel Allorge, 09/11/2008
- Re: [TECH], Chris Fabre, 09/11/2008
- Re: [TECH], Lionel Allorge, 09/11/2008
- RE: [TECH] Programmation socket, AF_INET, bind, udp, Daniel Daube, 09/11/2008
- Re: [TECH] Programmation socket, AF_INET, bind, udp, Mathieu Ignacio, 08/11/2008
Archives gérées par MHonArc 2.6.16.