Scapy学习笔记(一)


一.Scapy抓包函数:sniff()

1.sniff()函数的完整格式:

sniff(filter=" ",iface=" ",prn=function,count=N)
(1)filter:对数据包进行过滤。
(2)iface:指定网卡。
(3)prn:对数据包进行处理。
(4)count:抓几个包

2.filter使用规则:(伯克利包过滤机制)

(1)Type:表示指代的对象,例如IP地址,子网(net)或者端口(port)
(2)Dir:限制包传输的方向,src(源地址)和dst(目的地址)
(3)Proto:限定表示与数据包匹配的协议类型,常见的有Ether,IP,TCP,ARP

3.Lambda表达式(第三个prn参数的处理方法):

sniff(filter="icmp",prn=lambda x:x.summary())

这里prn的lambda表达式表示将抓包信息输出。
lambda

4.回调函数(当prn的处理复杂时使用)

5.count(设置抓包的个数)

sniff(count=10)  #表示抓10个包

6.练习

设计一个综合性的监听器,它会在网卡eth0监听源地址或目的地址为“192.168.1.1”的icmp数据包并打印出来,当收到了3个这样的数据包就会停止监听。

sniff(filter="host 192.168.1.1 and icmp",prn=lambda x:x.summary(),count=3)

文章作者: kento
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 kento !
评论
  目录