Las tarjetas de red ethernet solo reciben aquello que está destinado a ellas. Sin embargo, existe un llamado "modo promiscuo" que permite recibir cualquier información que circule por la red. Los sniffers aprovechan esta característica para recibir todo el tráfico de la red, y analizarlo para mostrarlo al usuario.
En general las diferencias entre un sniffer y otro serán los protocolos que soportan. Sin embargo, la posibilidad de escuchar de la red depende más de la estructura de la propia red que del programa.
Por ejemplo, en una red con hubs, puesto que estos simplemente replican lo que reciben en un puerto hacia todos los demás, sería muy fácil utilizar un sniffer: cualquier tipo de información que se inyecte a la red llega a nuestra tarjeta de red. En cambio, si la red está compuesta sólo por switch será imposible recibir algo que no se enviara a nosotros. De todas formas, esto se puede solucionar si tenemos acceso físico a los aparatos de conexionado (por ejemplo, intercalando un hub entre dos switch, y conectando a él nuestro ordenador espía captaremos una parte del tráfico de la red). Salu2.