Me explico un poco, estoy haciendo un capturador de paquetes con python, para ello estoy utilizando la libreria de scapy y como lo estoy haciendo con entorno gráfico, pues también estoy utilizando la libreria de tkinter.
Tengo hechos 2 botones, uno que empieza a capturar paquetes, y otro para que detenga la captura de paquetes, el primero funciona bien, si en el sniff le meto o un tiempo de captura, o un numero determinado de paquetes a capturar, pero si no le pongo parametros, se pega capturando hasta que lo cierro.
Mi pregunta es:
Que le puedo poner a la función detener, para que se pare la captura de paquetes?
PD: No sé si también habría que ponerle algo a la función de capturar, hasta el momento he intentado con excepciones, pero no consigo que funcione.
PD2: Si alguno cree que con otra librería gráfica me iría mejor, que lo comente también, estoy dispuesto a sugerencias.
Os dejo por aquí el código para ver si me podéis orientar un poco.
Código:
#!/usr/bin/python
#-*-coding: utf-8-*-
import sys
from Tkinter import *
from scapy.all import *
import os
import netifaces
# Funciones
# ----------------------------------------------------------------------------------------------------------------------
def captura():
try:
a=sniff()
except SystemExit:
print("Programa finalizado")
a.show()
wrpcap("prueba_boton.pcap", a)
def detener():
sys.exit()
def ver_interfaz_seleccionada(interfaces):
print()
#-----------------------------------------------------------------------------------------------------------------------
# Crear ventana principal
ventana = Tk()
ventana.geometry("1920x1080+0+0")
ventana.title("APP")
# Agregando una imagen a un boton
imgCapturar = PhotoImage(file="images.png")
boton_captura = Button(ventana, image=imgCapturar, command=captura, height=50, width=50).place(x=0, y=0)
# Agregando una imagen a un boton
imgStop = PhotoImage(file="2.gif")
boton_stop = Button(ventana, image=imgStop, command=detener, height=50, width=50).place(x=50, y=0)
ventana.mainloop()
Un saludo.