我正在尝试从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