python 应⽤系列教程——python 使⽤scapy 监听⽹络数据包、按TCPIP 协议进⾏解析
分享⼀个朋友的⼈⼯智能教程。零基础!通俗易懂!风趣幽默!还带黄段⼦!⼤家可以看看是否对⾃⼰有帮助:
全栈⼯程师开发⼿册 (作者:栾鹏)
python使⽤监听抓取⽹络数据包。
scapy具有模拟发送数据包、监听解析数据包、互联⽹协议解析、等多种⽤处。这⾥我们只来说⼀下scapy监听数据包,并按照不同的协议进⾏解析。
⾸先需要安装scapy包,
python库的安装⽅法请参考
scapy也是基于libcap的交互式⽹络分析⼯具,所以还要安装winpcap软件,为监控⽹卡提供接⼝。
scapy由于功能丰富,内容较多,所以在导⼊时会⽐较慢。在pycharm中可以导⼊,pydev中导⼊卡死。
如果导⼊卡死,可以把⾃⼰编写的python程序,放在scapy库的根⽬录下。⽐如scapy库在C:\Python27\
Scripts\scapy-master下,则在成功安装scapy库以后,可以将⾃⼰的py程序放在这个⽂件夹下执⾏。
python2.7下#coding:utf-8#由于scapy 没有⾃动将库⽬录添加到python 系统⽬录内,所以这⾥先查看模块⽬录在哪⾥,再添加到系统搜索路径下from scapy.all import * #导⼊scapy 较慢,如果⽆法导⼊,就将py ⽂件放到scapy 库,C:\Python27\Scripts\scapy-master ⽂件夹下执⾏print("sucess import")def pack_callback(packet):# print packet.show() #可以查看包的结构属性等 if packet["TCP"].payload: #检测tcp 负载是否有数据,有Ethernet 、IP 、TCP ⼏个阶段 appstr=str(packet["TCP"].payload) #将tcp 负载字节数组转化为字符串 #匹配⾃定义正则表达式 pat = 'Content-Type:(.*)[;\r\n]' #创建⼀个正则表达式,在字符串中匹配这个正则表达式,这⾥以Content-Type:开头,以;或\r 结尾的 pat = repile(pat); #使⽤正则表达式,创建正则对象 m = re.search(pat,appstr) #查询是否存在匹配的⼦字符串 if m: ups()) #打印需要()输出的内容# 嗅探数据包,参数:过滤器,回调函数,⽹卡,个数ifacestr="HUAWEI Mobile Connect - Network Card" #⽹⼝名称,这⾥要换成⾃⼰的⽹卡名称filterstr="tcp port 110 or tcp port 8080 or tcp port 80" #过滤条件,为空表⽰不限制sniff(filter=filterstr,prn=pack_callback,iface=ifacestr,count=0) #count 等0表⽰⼀直监听,要想监听数据包,需要⾸先安装winpcap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
tcpip协议pdf在程序中ifacestr参数为你要监听的⽹卡的名称,为下图中红⾊标记部分
python3.6下
1
还没有安装成功
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论