我使用scapy编写构建网络数据包并写入pcap文件。虽然我在python中使用ctypes将TCP端口号转换为struct.error: cannot convert argument to integer
,但我在编写时会出现unsigned short
错误。
def create_packet(sip, dip, sport, dport, payload):
sp = ctypes.c_ushort(sport)
dp = ctypes.c_ushort(dport)
packet = IP(src = sip, dst = dip)/TCP(sport=sp,
dport=dp)/str(payload.replace(' ','').decode("hex"))
return packet
def write_packet(file, pkt):
wrpcap(file, pkt, append=True)
编辑#1: 该错误是由于传递给写入pcap函数的巨大有效负载字符串造成的。