我有一個Python程序,收集探測請求併發送ssids和mac到服務器。但是幾分鐘後它會減慢我的電腦速度。我試圖添加字典,以便我只在需要時進行POST。 但問題仍然如此:幾分鐘後,我的電腦放緩。我也嘗試過覆盆子pi,結果是一樣的。爲什麼我的Python程序減慢我的電腦
請告訴我這裏有什麼問題。
這是代碼
#!/usr/bin/env python
from scapy.all import *
import json
import requests
macSsid = {}
def handler(pkt):
url = 'http://10.10.10.10:3000/ssids'
headers = {'content-type': 'application/json'}
if pkt.haslayer(Dot11):
if pkt.type == 0 and pkt.subtype == 4:
if pkt.info :
print "Client MAC = %s probe request =%s" % (pkt.addr2, pkt.info)
if pkt.addr2 not in macSsid:
macSsid[pkt.addr2] = []
macSsid[pkt.addr2].append(pkt.info)
r = requests.post(url, data = json.dumps({"mac": pkt.addr2, "ssid": pkt.info }), headers = headers)
else:
if pkt.info not in macSsid[pkt.addr2]:
macSsid[pkt.addr2].append(pkt.info)
r = requests.post(url, data = json.dumps({"mac": pkt.addr2, "ssid": pkt.info }), headers = headers)
while 1:
try:
exc_info = sys.exc_info()
sniff(iface="mon0", prn = handler)
except Exception, err:
traceback.print_exception(*exc_info)
請告訴我什麼是錯在這裏。
我可能會誤解scapy,但是在循環中添加'sniff'會多次添加處理程序嗎?如果使用'timeout = 100'並且只調用一次'sniff',會發生什麼? –
我找不到很好的'scapy'文檔來告訴我'pkt.info'是什麼,但是它可能在dict裏面列出的信息越來越大。這個例子https://gist.github.com/securitytube/5291959嗅探器過濾到正確的數據包類型befoer節省ssids。也許你應該這樣做。 – tdelaney