Scooter
Cascarrabias crónico
Estoy haciendo un entrenador de redes en el que se pueden configurar diversas infraestructuras.
El caso es que los equipos son raspberry pi que están conectados a la red y según se configuren irán a una IP u otra y tendrán acceso o no a otra parte de la red.
Se me ha ocurrido que sería muy visual que la raspi lleve un led que parpadee cuando recibe un ping y estoy un poco perdido.
El comando que he encontrado para saber o no que se está recibiendo un ping es:
Que se queda parado esperando un ping y devuelve un listado de la "evolución" del ping y se vuelve a quedar parado.
Algo así:
Ahora la cuestión es que no sé muy bien como llamar a ese comando y resolver en función de su respuesta, o de su no respuesta para hacer parpadear el led.
La historia es que si lo llamo desde python lo normal es que no devuelva nada porque en ese momento no hay un ping entrante.
También he probado a reenviar la salida del comando a un archivo añadiendo detrás de él
Quizás sea una opción dejar al comando siempre generando el archivo y viendo desde otro programa si el archivo crece o no lo que indicaría la recepción de nuevos pings...
¿Alguna idea u orientación?
El caso es que los equipos son raspberry pi que están conectados a la red y según se configuren irán a una IP u otra y tendrán acceso o no a otra parte de la red.
Se me ha ocurrido que sería muy visual que la raspi lleve un led que parpadee cuando recibe un ping y estoy un poco perdido.
El comando que he encontrado para saber o no que se está recibiendo un ping es:
Código:
usuario@PCx:~$ sudo tcpdump ip proto \\icmp
Algo así:
Código:
09:47:03.435380 IP 162.168.0.20 > PC2: ICMP echo request, id 92, seq 1, length 64
09:47:03.435417 IP PC2 > 162.168.0.20: ICMP echo reply, id 92, seq 1, length 64
09:47:03.551248 IP 162.168.0.20 > PC2: ICMP echo request, id 93, seq 1, length 64
09:47:03.551285 IP PC2 > 162.168.0.20: ICMP echo reply, id 93, seq 1, length 64
09:47:03.684557 IP 162.168.0.20 > PC2: ICMP echo request, id 94, seq 1, length 64
09:47:03.684595 IP PC2 > 162.168.0.20: ICMP echo reply, id 94, seq 1, length 64
... sigue un rato así.
Ahora la cuestión es que no sé muy bien como llamar a ese comando y resolver en función de su respuesta, o de su no respuesta para hacer parpadear el led.
La historia es que si lo llamo desde python lo normal es que no devuelva nada porque en ese momento no hay un ping entrante.
También he probado a reenviar la salida del comando a un archivo añadiendo detrás de él
Código:
usuario@PCx:~$ sudo tcpdump ip proto \\icmp > ping_entrante.txt
¿Alguna idea u orientación?