首页 > 编程知识 正文

wireshark抓包实例教程,wireshark python

时间:2023-05-04 00:52:02 阅读:149290 作者:268

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也必须以管理员身份运行。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。