scapy无线发包

  1. 使用send发送无线数据包
    send()利用自身的无线网卡来发送无线数据包,用法与有线发包一致(实际上已经屏蔽了IP层以下的内容),使用简单,但只能发送三层以上的数据包,无法对MAC层及PHY层进行定制。
    例如:
ip_pkt = IP(src='1.1.1.1',dst='2.2.2.2')
data = Raw('111222333444')
packet = ip_pkt/data
send(packet)
  1. 使用sendp发送无线数据包
    相比也send(), sendp()发送的无线数据包则灵活性大很多,从PHY到MAC都需要自己构造,相对复杂,但也灵活了很多。好在scapy已经定义好了足够的封装,因此对于一般的使用来说,调用scapy封装好的对应类即可。例如:
client = 00:11:22:33:44:55
bssid = 55:44:33:22:11:00
packet = RadioTap()/Dot11(type=0,subtype=12,addr1=client,
addr2=bssid,addr3=bssid)/Dot11Deauth(reason=7)
sendp(packet)

代码来源:MATEN的博客

你可能感兴趣的:(wireless,python)