Ich habe ein kleines Programm in Python, die Probe Anfragen sammeln und SSIDs und Macs an einen Server senden. Aber es verlangsamt meinen Computer nach wenigen Minuten. Ich habe versucht, dict hinzuzufügen, so dass ich einen POST nur machen werde, wenn es notwendig ist. Aber das Problem ist immer noch das gleiche: nach ein paar Minuten wird mein Computer langsamer. Ich habe es auch mit Raspberry Pi versucht und das Ergebnis ist das gleiche.Warum mein Python-Programm verlangsamt meinen Computer
Bitte sagen Sie mir, was hier falsch ist.
Dies ist der Code
#!/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)
Bitte sagen Sie mir, was hier nicht stimmt.
Ich mag Scapy missverstehen, aber fügt das Hinzufügen von "Sniff" in einer Schleife den Handler mehrmals hinzu? Was passiert, wenn Sie 'timeout = 100' verwenden und nur einmal' sniff' aufrufen? –
Ich kann keine gute 'Scapy'-Dokumentation finden, die mir sagt, was' pkt.info' ist, aber es ist wahrscheinlich, dass Ihre Informationslisten innerhalb des Diktats sehr groß werden. Dieses Beispiel https://gist.github.com/securitytube/5291959 Sniffer filtert bis zum richtigen Pakettyp vor dem Speichern von SSIDs. Vielleicht solltest du das Gleiche tun. – tdelaney