actuellement en train de penser à une possibilité de renifler à la même interface en utilisant seulement pcap et aussi d'injecter les paquets en utilisant pcap_inject.empêchant libpcap de capturer les paquets injectés avec pcap_inject()
La chose peut être résolu facilement en utilisant soit:
- suivi total de contrôle persistante/grande carte lente /,
- suivi de contrôle - jusqu'à ce que toutes les données ont été injecté, par exemple, une première demande de http;
- hacking bpf/libipq/Netfilter pour transporter paramètre supplémentaire pour chaque vrai paquet de couche physique
Mais:
PPCE écoute situation eth0/RealWorld est plus proche de "PPCE écoute et tombe par la magie source" /, pcap envoie un paquet via le handle de eth0 afin qu'ils puissent être routés. Quelle est la base théorique pour libpcap de ne pas capturer les paquets qui ont été injectés à la même interface en utilisant la même bibliothèque - par exemple, les paquets injectés ne traversent pas tout le code de filtrage de paquets de Berkeley?
Test pratique à déterminer.
C'est génialement simple :) avoir votre générosité. Autre type a encore mentionné le sous-système skbuff, ne va pas si loin maintenant .. –
Vous pouvez également utiliser 'pcap_setdirection (p, PCAP_D_IN)' si vous voulez voir seulement les paquets * reçus * sur l'interface. Notez toutefois que cela ne signifie pas que vous ne verrez pas les paquets que vous injectez, mais que vous ne verrez pas non plus les paquets que votre machine transmet via la pile de réseau normale. Il en va de même si vous utilisez un filtre sur l'adresse de la source Ethernet. –