使用python的scapy模块发送并接收数据包
1.使用scapy构造简单的数据包
packet=Ether()/IP()/TCP()
scapy会默认的填上一些初始化的数据,默认的以太二层为一个广播,源mac会自动填上网卡的地址(如不修改)。
通过packet.show()方法可以查看数据包的结构和初始化数据。
2.使用scapy构造一个ping数据包。
packet=IP(dst='192.168.219.1')/ICMP()/b'rootkit'
使用packet.show()来查看构造的数据包
请读者自行掌握ping数据包的结构,IP和ICMP。
3.使用sr1发送构造的数据包,此函数的功能是发送并等待接收一个回复的数据包。
ping=sr1(IP(dst='192.168.219.141')/ICMP()/b'rootkit'
这句话的意思是发送一个ping数据包,并等待接收一个数据包将其保存在ping变量里,
通过ping.show()查看回复的数据包。
4.收发数据包介绍
sr():发送三层数据包,等待接收一个或多个数据包的回复
sr1():发送三层数据包,并仅仅只等待接收一个数据包的响应
srp():发送二层数据包,并且等待响应
send():仅仅发送三层数据包,系统会自动处理路由和二层信息
sendp():发送二层数据包