send_raw_fram函數(shù)步驟如下:
- 定義send_raw_frame函數(shù),函數(shù)需要傳入源MAC地址果录、目的MAC地址、源IP地址、目的IP地址以及payload(數(shù)據(jù)包內(nèi)容)侠姑。
- 創(chuàng)建以太網(wǎng)幀,設(shè)置源MAC地址和目的MAC地址箩做。
- 創(chuàng)建IP幀莽红,設(shè)置源IP地址和目的IP地址。
- 創(chuàng)建payload幀邦邦,設(shè)置數(shù)據(jù)包內(nèi)容安吁。
- 將以太網(wǎng)幀、IP幀和payload幀組合成幀燃辖。
- 使用scapy.sendp函數(shù)發(fā)送幀鬼店,指定網(wǎng)卡接口為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 = "以太網(wǎng) 2")
c= b"\xff\xff\xff\xff\xff\xff\x00\x00\xc0\xa8"
for i in range(10):
scapy.sendp(c, iface = "以太網(wǎng) 2")
因為我不想定義源mac啥的所以直接用sendp發(fā)包了