赞
踩
ip = IP()
。ip = IP(dst="192.168.1.101")
语句。[p for p in ip]
通常最下面的一个协议为Ether,然后是IP,再之后是TCP或者是UDP。
IP()函数无法用来构造ARP请求和应答数据包,可以使用Ether(),
这个函数可以设置发送方和接收方的MAC地址。产生一个广播数据包,执行命令如下
Ether(dst="ff:ff:ff:ff:ff:ff")
Scapy中的分层通过符号“/”实现,一个数据包是由多层协议组合而成,这些协议之间就可以使用“/”分开,按照协议由底而上的顺序从左向右排列
例如,可以使用以下命令来完成一个TCP数据包,
Ether()/IP()/TCP()
如果构造一个HTTP数据包,可以使用以下方式
IP()/TCP()/"GET / HTTP/1.0\r\n\r\n"
ls()函数查看一个类所拥有的属性
ls(Ether())
来查看Ether类属性ls(IP())
来查看IP类的属性可以对这里面的属性进行设置,例如:将ttl的值设置为32,可以使用如下方式
IP(src="192.168.1.1", dst="192.168.1.101", ttl=32)
send() 工作在第三层,发送IP数据包
sendp() 工作在第二层,发送Ether数据包
例如,构造一个目的地址为"192.168.1.101"的ICMP数据包,并将其发送出去,可以使用语句
send(IP(dst="192.168.1.101")/ICMP())
#注意,如果这个数据包发送成功,下方会有一个“Sent 1 packets.”的显示。
sendp
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。