send_raw_fram函数步骤如下:
- 定义send_raw_frame函数,函数需要传入源MAC地址、目的MAC地址、源IP地址、目的IP地址以及payload(数据包内容)。
- 创建以太网帧,设置源MAC地址和目的MAC地址。
- 创建IP帧,设置源IP地址和目的IP地址。
- 创建payload帧,设置数据包内容。
- 将以太网帧、IP帧和payload帧组合成帧。
- 使用scapy.sendp函数发送帧,指定网卡接口为eth0。
import scapy.all as scapy
def send_raw_frame(src_mac, dst_mac, src_ip, dst_ip, payload):
ethernet_frame = scapy.Ether(src = src_mac, dst = dst_mac)
ip_frame = scapy.IP(src = src_ip, dst = dst_ip)
payload_frame = scapy.Raw(load = payload)
frame = ethernet_frame/ip_frame/payload_frame
scapy.sendp(frame, iface = "以太网 2")
c= b"\xff\xff\xff\xff\xff\xff\x00\x00\xc0\xa8"
for i in range(10):
scapy.sendp(c, iface = "以太网 2")
因为我不想定义源mac啥的所以直接用sendp发包了