-1
"스니핑 시작"을 누르면 패킷을 스니핑하고 콘솔로 출력하고 "스니핑 중지"를 누르면 스니핑을 중지하는 프로그램을 작성하려고합니다. . Heres는 코드는 내가 쓴 :scapy로 스니핑을 시작할 때 Tkinter가 충돌 함
from tkinter import *
from scapy.all import *
from scapy.arch.windows.compa import * """Adds stop_filter to sniff because
its not in scapy-python3"""
root = Tk()
Switch = False
def stopbutton():
global Switch
Switch = True
def stopsniffing(x):
global Switch
return Switch
def action(packet):
try:
print ("%s went to %s"%(packet[IP].src, packet[IP].dst))
except:
pass
def startsniffing():
sniff(filter="host 192.168.0.48", prn=action, stop_filter=stopsniffing)
button = Button(text="Start sniffing", command=startsniffing).pack()
button2 = Button(text="Stop sniffing", command=stopbutton).pack()
root.mainloop()
내 문제는 내가 스니핑 시작하기 시작 스니핑 시작을 누르하지만 때 다른 모든 응답하지 않는 것입니다.
에 그것을해야 다음
var
이 필요하면 당신은를 건너 뛸 수 있습니다 - 시스템에서 키/마우스 이벤트를 가져오고, 이벤트를 위젯에 보내고, 위젯을 다시 그립니다. 따라서 화면이 정지 된 것처럼 보입니다. 스니핑 코드를 실행하려면 트레드를 사용해야합니다. – furas
btw : 오류가 발생하지 않으므로'except : pass'를 사용하지 마십시오. 최소한 메시지를 표시하십시오. '예외를 e로 제외 : print (e)' – furas