| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/2023summer |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/2023summer/homework/12995 |
| 这个作业的目标 | 学习使用scapy进行数据包的构造,发送,接收 学习并使用count-min sketch算法 |
一.使用scapy工具实现数据包的构造、发送和接收
先在发送端(192.168.11.3)构造数据包,接收端为192.168.11.2
from scapy.all import *
//目标IP地址和端口
receiver_ip = "192.168.11.2" receiver_port = 12345
packet = IP(dst=receiver_ip)/UDP(dport=receiver_port)/Raw(load="FZU_laowang")
send(packet)
构造一个UDP数据包并发送

在接收端准备了两个接收工具,分别是scapy和wireshark
1)scapy
先写接收脚本
from scapy.all import *
//监听的IP地址和端口
receiver_ip = "192.168.11.2"
receiver_port = 12345
//定义回调函数处理接收到的数据包
def packet_handler(packet):
if packet.haslayer(Raw):
data = packet[Raw].load.decode()
print("Received data:", data)
sniff(iface= 'ens33',filter=f"udp and host {receiver_ip} and port {receiver_port}", prn=packet_handler)<details>

发送接收都成功了

2>wireshark

发送并成功接收