我正在嘗試從process()內調用two_byte_proc(有效內容,偏移量),但它不寫入輸出文件out_buf。偏移或有效負載的輸出可能包含無,因此應該跳過這些迭代,並用下一個數據包重新啓動處理函數。從函數內部調用Python函數
def process():
pkts = sniff(offline="infile.pcap",filter="tcp")
out_buf = open("outfile.bin","wb")
for pkt in pkts:
offset = hexdump(str(pkt.payload)[:2])
payload = hexdump(pkt.payload)
if offset or payload is None:
pass
else:
out_buf.write(two_byte_proc(payload,offset))
process()
函數'two_byte_proc'是什麼?它在哪裏定義?另外,你是什麼意思,它不起作用。如果它沒有產生錯誤,它會做什麼讓你認爲它不起作用? – BrenBarn 2012-07-14 20:39:53
這可以重寫爲'如果偏移量不是無,有效負載也不是無。 – Ryan 2012-07-14 20:42:19
或者如果不是(偏移或有效載荷):',這更接近原始的簡潔性。 (假設'offset'和'payload'永遠不會像''「'那樣是你想輸出的」falsey「值(如果這是一個問題,'如果None(in offset,payload):'也是簡潔的,但是清除。) – millimoose 2012-07-14 20:44:46