[英]IndentationError: writing data to csv
當運行 SNIFF 的 python 腳本時,我試圖將 Scapy SNIFF 中的“數據”直接寫入 CSV,但在運行腳本時出現以下錯誤:
py_compile.PyCompileError:抱歉:IndentationError:意外縮進(prog.py,第 33 行)
這里出了什么問題?
這是我的代碼:
from scapy.all import *
import datetime
import csv
import sys
PROBE_REQUEST_TYPE=0
PROBE_REQUEST_SUBTYPE=4
STAMP = datetime.datetime.now().isoformat()
WHITELIST = ['00:00:00:00:00:00',] # Replace this with your phone's MAC address
def PacketHandler(pkt):
if pkt.haslayer(Dot11):
if pkt.type==PROBE_REQUEST_TYPE and pkt.subtype == PROBE_REQUEST_SUBTYPE and ( pkt.addr2.lower() not in WHITELIST or pkt.addr2.upper() not in WHITELIST):
PrintPacket(pkt)
def PrintPacket(pkt):
print "Probe Request Captured:"
try:
extra = pkt.notdecoded
except:
extra = None
if extra!=None:
signal_strength = -(256-ord(extra[-4:-3]))
else:
signal_strength = -100
print "No signal strength found"
print "Target: %s Source: %s SSID: %s RSSi: %d"%(pkt.addr3,pkt.addr2,pkt.getlayer(Dot11ProbeReq).info,signal_strength)
f = open('/mtn/sda1/logger.csv', 'w')
filename = 'logger.csv'.format(STAMP)
open(filename, 'a') as f:
f.write('Target: %s Source: %s SSID: %s RSSi: %d"%(pkt.addr3,pkt.addr2,pkt.getlayer(Dot11ProbeReq).info,signal_strength)'.format(STAMP))
f.close()
def main():
from datetime import datetime
print "[%s] Starting scan"%datetime.now()
print "Scanning ..."
print "\n"
sniff(iface=sys.argv[1],prn=PacketHandler,store=0)
if __name__=="__main__":
main()
你錯過了with
關鍵字:
filename = 'logger.csv'.format(STAMP)
open(filename, 'a') as f:
f.write('Target: %s Source: %s SSID: %s RSSi: %d"%(pkt.addr3,pkt.addr2,pkt.getlayer(Dot11ProbeReq).info,signal_strength)'.format(STAMP))
f.close() # unnecessary
此外,如果您使用with
關鍵字,則無需手動關閉文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.