python嗅探(sniff )只是为了学习。 不能用于其他用途。 技术上无罪,知己知彼,百战不殆。
安装scapy模块并打开DOS命令行
python-m pip安装扫描
sniff ) )函数功能数据嗅探
一些参数iface:指定要在哪个网络接口上捕获包
count:表示要捕获的包的数量。 默认值为0。 数量不受限制。
过滤器:流量的过滤规则。 正在使用BPF语法
prn:定义回调函数,并使用lambda表达式写入回调函数。 当捕获到符合filter标准的通信时,将执行回调函数
BPF过滤器语法示例仅捕获由某个IP主机传递的通信: host 192.168.1.124
仅捕获具有某个MAC地址的主机的交互流量: ethersrchost 003360873360 df 336098360653360 d 8
仅捕获来自某个IP的主机通信: src host 192.168.1.125
仅捕获到某个IP的主机流量: dst host 192.168.1.154
仅捕获80个端口的通信量: port 80
仅捕获80个端口以外的端口的通信量: 端口80
仅捕获ICMP流量: ICMP
仅捕获源地址为192.168.1.125且目标端口为80的通信: src host 192.168.1.125 dst port 80
简单的APP应用程序只捕获源地址为192.168.1.124且目标端口为80的通信。
fromscapy.all import * sniff (filter=' srchost 192.168.1.124 dstport 80 ',prn=lambda x:x.summary ) )
注:必须以管理员身份运行dos。 不执行的话,网卡信息的获取会失败。
可以细化打印内容,也可以更改lambda表达式
仅打印源IP和目标IP
prn=lambdax : x [ IP ].src '---' x [ IP ].dst
可以定义sniff (callback ) )函数来调用prn,以避免函数变得冗长
fromscapy.all import * def callback (packet ) : print (src : % s---dst : % s ' % ) packet[IP].src,pack
可以将数据包保存为pcap格式,并在wireshark中查看分析
fromscapy.all import * packet=sniff (filter=' srchost 192.168.1.124 dstport 80 ',count=4) #四个软件包wrpcap(data )
可以通过wireshark分析看到
工具源fromscapy.all import * importtimeimportoptparse #回调打印函数defpackcallback(packet ) : print ' * * 30 ) #打印源IP source : % s : % s---- target 3360 % s : % s ' % (timestamp2time ) packet.time )、packet packet.dport(#打印数据包时间戳转换函数deftimestamp2time(timestamp ) 3360 time tmp=time tmp time.local time ()被格式化的时间戳是本地时间my time=time . timetmp(#将本地时间设置为字符串returnmytimeif _ name _=' _ main _ ' : parser=optparse.option parser (example 3360 python IP参数-Iparser.add_option('-I ','--IP ',dest='hostIP ',default='127.0.0.1.1 ',type='stip ) 要添加type='stip '的help=' IP address [ default=127.0.0.1 ] ' #包总参数-cparser.add_option('-c ','-) 添加dest=' pacct ' help=' packet count [ default=5]保存文件名参数-oparser.add_option('-o ','--output ',default ) 添加dest=' filename ' help=' savefilename [ default=data.pcap ] ' ) (options,args )=parser.parse _ args (def filename )
功能:主要用于将命令参数传递给脚本,并使用预定义选项解析命令行参数。 实例化一个OptionParser对象,该对象可以具有也可以不具有参数。 拥有参数后,参数变量的内容将作为帮助信息输出。
3358 www.Sina.com/: http://www.Sina.com /用于存储输入的临时变量,其值是通过options属性访问的。 多个参数由逗号分隔。参数,用于设定参数数据类型;dest,设置帮助信息;type,dest的默认值。
执行结果:
注: dos也必须以管理员身份运行。