2012-08-17 14 views
9

Estoy utilizando Scapy y me gustaría filtrar en función de la dirección MAC de destino.Filtro Scapy BPF no funciona

Sin embargo, estoy obteniendo paquetes que se muestran donde la dirección MAC de destino no es la dirección especificada en el filtro.

Aquí es una snippit código:

from scapy.all import * 

sniff(iface="eth1", filter="ether dst host 91:e0:f0:01:00:00", 
     count=3, prn=lambda x: x.show()) 

Me postulo Scapy 2.2.0

¿Alguna idea sobre el tema aquí?

+0

Considere el formato de su código. –

+0

El formateo del código no solucionó el problema. – user1607606

+0

Probé el código en mi sistema, la misma versión de scapy. El filtro funcionó. ¿Qué tipos de direcciones MAC están recibiendo a través del filtro? – RyPeck

Respuesta

1

Se scapy es culpa !!! Parece que scapy comienza a recibir paquetes antes de aplicar el filtro BPF (argumento filter de la función sniff). ¡Lleva un tiempo conseguir trabajo correctamente! Dos métodos para deshacerse de esto:

  1. lfilter uso para definir su función de filtrado dentro del guión. No es eficiente en el enlace ocupado porque el filtro se aplica en su secuencia de comandos, en lugar de kernel. Considere usar pypy para acelerarlo.
  2. Para algunos primeros paquetes verifique la dirección MAC de destino dentro de su secuencia de comandos y luego no la vuelva a verificar; es decir, verificar la corrección del paquete en el momento inicial de inhalación para pasar la fase inestable de scapy y luego confiar en scapy para filtrar los paquetes no deseados.
+0

Claro, la actualización parece arreglar la cosa – Cukic0d

1

tcpdump Instalación resolvió el problema para mí - ahora el filtro de aspiración funciona

1

En mi caso, la actualización a 2.3.3dev (versión github), que fija

Cuestiones relacionadas