You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
3.0 KiB

11 months ago
packet_count = split_appdata(int(size))
self.canvas.message.show_message("传输层拆包成功!数量:{}".format(packet_count))
for i in range(1, packet_count + 1):
trans_data = TransData(
obj_id=self.ObjID,
id_key=app_data.id_key,
trans_pack_id=str(i),
trans_seq=i,
trans_tag=label,
app_pack_id=app_data.app_pack_id,
sent_port=int(self.interface[0]["conn_port"].split(".")[0]),
rcpt_port=80,
source_app_addr=self.interface[0]['ip'],
target_app_addr=ip,
trans_packed_string=app_data.pack(),
timestamp=int(time.time())
)
self.canvas.message.show_message("传输层数据包{}{}".format(i, trans_data.pack()))
ip_data = IPData(
obj_id=self.ObjID,
id_key="1001",
ip_pack_id="1001",
trans_pack_id=str(i),
source_ip=self.interface[0]["ip"],
target_ip=ip,
source_app_addr=self.interface[0]["ip"],
target_app_addr=ip,
ip_packed_string=trans_data.pack()
)
self.canvas.message.show_message("网络层数据包:{}".format(trans_data.pack()))
mac_data = MACData(
obj_id=self.ObjID,
id_key=app_data.id_key,
mac_pack_id="1001",
ip_pack_id=str(i),
sent_mac=self.interface[0]["mac"],
rcpt_mac=mac,
source_ip=self.interface[0]["ip"],
target_ip=ip,
source_app_addr=self.interface[0]["ip"],
target_app_addr=ip,
mac_packed_string=ip_data.pack()
)
self.canvas.message.show_message("链路层数据包:{}".format(mac_data.pack()))
self.canvas.show_top_message(self, message=message.format(self.ObjLabel, self.interface[0]["ip"], self.interface[0]["mac"],
size, i, packet_count))
packet = SimPacket(self.interface[0]["ip"], self.interface[0]["mac"], ip, mac, mac_data.pack())
thread = threading.Timer(i, function=self.send, args=(packet,))
thread.start()
tk.Button(toplevel, text='开启模拟', font=('黑体', 16), height=1, command=split_packet).grid(row=5, column=0, sticky='e',
pady=10)
tk.Button(toplevel, text='取消', font=('黑体', 16), height=1, command=toplevel.destroy).grid(row=5, column=1,
sticky='e', pady=10)