导航:首页 > 编程语言 > python实时抓包

python实时抓包

发布时间:2023-06-19 14:28:40

python2.7 怎么进行抓包和解包

1、抓包,可以下载winpcapy 或者自己加载winpcap动态库
2、解包,使用dpkt解析
参考程序,基于进程抓包QPA工具

㈡ 如何利用python2.7实现网页的抓包拦包改包功能有没有范例

登陆其实就是将账号密码之类的POST到那个网站的服务器。你可以通过抓包看到你点击登陆时发的POST包。那么你用python也模拟发一个一样的包给服务器,就实现了模拟登陆呗。

㈢ 求告知Python3可以用的网络抓包模块

用socket抓包是用RAW模式。不过不一定能开启成功。

你可以调用一个包winpcap,这个包有python的接口,着名的抓包工具wireshark也是用的这个包。

至于python3支持不支持呢?原则上,应该支持了。只需要找一找。 不过为什么坚持 用python3,这东西还没有成熟。2年内都用不上。 大公司没有用python3的。linux上缺省的python就是python2。

90%的软件都在用python2,不知道哪个老师坚持要讲python3,python3还是一个过渡语言,没有几年发展很难有大的应用市场。而且目前也看不出与python2的明显优势

开源市场又不是微软,说必须windows升级,不然我不支持。开源市场是用户喜欢用,它就存在,不喜欢用,你花再多精力开发,也是白做无用功。

python3目前也就是一个软件包怕自己被淘汰也支持一下。大部分软件包不理采它。特别是一些好的软件。本身体系庞大 ,没有时间精力去折腾这个。

只支持python2.5的包是不可能的。好的包,特别是winpcap一定会支持python2.7的。

㈣ python爬虫怎么抓包

方案:

  1. 自己通过request库手动编写

  2. 使用python的爬虫库scrapy

最推荐的一种:使用python的爬虫库scrapy

推荐理由:

  1. 应用最广泛的爬虫框架,没有之一
  2. 成熟度最高的框架,没有之一

  3. 利用成熟产品,避免重复“造轮子”,可以更快速的构建项目

㈤ 想用Python抓包(keep APP),进而修改数据,得到伪造的结果,有什么具体方案吗

用fiddler抓包,获取post的地址,然后伪造表单,用requests.post()把表单内容发过去试试。

㈥ 如何用python爬取网站数据

这里简单介绍一下吧,以抓取网站静态、动态2种数据为慧返拍例,实验环境win10+python3.6+pycharm5.0,主要内容如下:

抓取网站静态数据(数据在网页源码中):以糗事网络网站数据为例

1.这里假设我们抓取的数据如下,主要包括用户昵称、内容、好笑数和评论数这4个字段,如下:

对应的网页源码如下,包含我们所需要的数据:

2.对应网页结构,主要代码如下,很简单,主要用到requests+BeautifulSoup,其中requests用于请求页面,BeautifulSoup用于解析页面:

程序运行截图如下,已经成功爬取到数据:

抓取网站动态数据(数据不在网页源码中,json等文件中):以人人贷网站数据为例

1.这里假设我们爬取的是债券数据,主要包括年利率世型、借款标题、期限、金额和进度这5个字段信息,截图如下:

打开网页源码中,可以发现数据不在网页源码中,按F12抓包分析时,才发现在一个json文件中,如下:

2.获取到json文件的url后,我们就可以爬取对应数据了,这里使用的包与上面类似,因为是json文件,所以还用了json这个包(解析json),主要内容如下:

程序运行截图如下,前羡已经成功抓取到数据:

至此,这里就介绍完了这2种数据的抓取,包括静态数据和动态数据。总的来说,这2个示例不难,都是入门级别的爬虫,网页结构也比较简单,最重要的还是要会进行抓包分析,对页面进行分析提取,后期熟悉后,可以借助scrapy这个框架进行数据的爬取,可以更方便一些,效率更高,当然,如果爬取的页面比较复杂,像验证码、加密等,这时候就需要认真分析了,网上也有一些教程可供参考,感兴趣的可以搜一下,希望以上分享的内容能对你有所帮助吧。

㈦ 如何利用Python嗅探数据包

一提到Python获取数据包的方式,相信很多Python爱好者会利用Linux的libpcap软件包或利用Windows下的WinPcap可移植版的方式进行抓取数据包,然后再利用dpkt软件包进行协议分析,我们这里想换一个角度去思考:1.Python版本的pcap存储内存数据过小,也就是说缓存不够,在高并发下容易发生丢包现象,其实C版本的也同样存在这样的问题,只不过Python版本的缓存实在是过低,让人很郁闷。2.dpkt协议分析并非必须,如果你对RFC791和RFC793等协议熟悉的话,完全可以使用struct.unpack的方式进行分析。如果你平常习惯使用tcpmp抓取数据包的话,完全可以使用它来代替pcap软件包,只不过我们需要利用tcpmp将抓取的数据以pcap格式进行保存,说道这里大家一定会想到Wireshark工具,具体命令如下:tcpmpdst10.13.202.116andtcpdstport80-s0-ieth1-w../pcap/tcpmp.pcap-C1k-W5我们首先需要对pcap文件格式有所了解,具体信息大家可以参考其他资料文档,我这里只说其重要的结构体组成,如下:sturctpcap_file_header{DWORDmagic;WORDversion_major;WORDversion_minor;DWORDthiszone;DWORDsigfigs;DWORDsnaplen;DWORDlinktype;}structpcap_pkthdr{structtimevalts;DWORDcaplen;DWORDlen;}structtimeval{DWORDGMTtime;DWORDmicroTime;}这里需要说明的一点是,因为在Python的世界里一切都是对象,所以往往Python在处理数据包的时候感觉让人比较麻烦。Python提供了几个libpcapbind,这里有一个最简单的。在windows平台上,你需要先安装winpcap,如果你已经安装了Ethereal非常好用。一个规范的抓包过程:importpcapimportdpktpc=pcap.pcap()#注,参数可为网卡名,如eth0pc.setfilter('tcpport80')#设置监听过滤器forptime,pdatainpc:#ptime为收到时间,pdata为收到数据printptime,pdata#对抓到的以太网V2数据包(rawpacket)进行解包:p=dpkt.ethernet.Ethernet(pdata)ifp.data.__class__.__name__=='IP':ip='%d.%d.%d.%d'%tuple(map(ord,list(p.data.dst)))ifp.data.data.__class__.__name__=='TCP':ifdata.dport==80:printp.data.data.data一些显示参数nrecv,ndrop,nifdrop=pc.stats()返回的元组中,第一个参数为接收到的数据包,第二个参数为被核心丢弃的数据包。至于对于如何监控tcpmp生成的pcap文件数据,大家可以通过pyinotify软件包来实现,如下:classPacker(pyinotify.ProcessEvent):def__init__(self,proct):self.proct=proctself.process=Nonedefprocess_IN_CREATE(self,event):logger.debug("createfile:%sinqueue"%self.process_IF_START_THREAD(event))defprocess_IN_MODIFY(self,event):self.process_IF_START_THREAD(event)logger.debug("modifyfile:%sinqueue"%self.process_IF_START_THREAD(event))defprocess_IN_DELETE(self,event):filename=os.path.join(event.path,event.name)logger.debug("deletefile:%s"%filename)defprocess_IF_START_THREAD(self,event):filename=os.path.join(event.path,event.name)iffilename!=self.process:self.process=filenameself.proct.put(filename)ifself.proct.qsize()>1:try:logger.debug("createconsumerproct.qsize:%s"%self.proct.qsize())consumer=Consumer(self.proct)consumer.start()exceptException,errmsg:logger.error("createconsumerfailed:%s"%errmsg)returnfilenameclassFactory(object):def__init__(self,proct):self.proct=proctself.manager=pyinotify.WatchManager()self.mask=pyinotify.IN_CREATE|pyinotify.IN_DELETE|pyinotify.IN_MODIFYdefwork(self):try:try:notifier=pyinotify.ThreadedNotifier(self.manager,Packer(self.proct))notifier.start()self.manager.add_watch("../pcap",self.mask,rec=True)notifier.join()exceptException,errmsg:logger.error("createnotifierfailed:%s"%errmsg)exceptKeyboardInterrupt,errmsg:logger.error("factoryhasbeenterminated:%s"%errmsg)在获得要分析的pcap文件数据之后,就要对其分析了,只要你足够了解pcap文件格式就可以了,对于我们来讲只需要获得TCP数据段的数据即可,如下:classWriter(threading.Thread):def__init__(self,proct,stack):threading.Thread.__init__(self)self.proct=proctself.stack=stackself.pcap_pkthdr={}defrun(self):whileTrue:filename=self.proct.get()try:f=open(filename,"rb")readlines=f.read()f.close()offset=24whilelen(readlines)>offset:self.pcap_pkthdr["len"]=readlines[offset+12:offset+16]try:length=struct.unpack("I",self.pcap_pkthdr["len"])[0]self.stack.put(readlines[offset+16:offset+16+length])offset+=length+16exceptException,errmsg:logger.error("unpackpcap_pkthdrfailed:%s"%errmsg)exceptIOError,errmsg:logger.error("openfilefailed:%s"%errmsg)在获得TCP数据段的数据包之后,问题就简单多了,根据大家的具体需求就可以进行相应的分析了,我这里是想分析其HTTP协议数据,同样也借助了dpkt软件包进行分析,如下:defworker(memcache,packet,local_address,remote_address):try:p=dpkt.ethernet.Ethernet(packet)ifp.data.__class__.__name__=="IP":srcip="%d.%d.%d.%d"%tuple(map(ord,list(p.data.src)))dstip="%d.%d.%d.%d"%tuple(map(ord,list(p.data.dst)))ifp.data.data.__class__.__name__=="TCP":tcpacket=p.data.dataiftcpacket.dport==80anddstip==local_address:srcport=tcpacket.sportkey=srcip+":"+str(srcport)iftcpacket.data:ifnotmemcache.has_key(key):memcache[key]={}ifnotmemcache[key].has_key("response"):memcache[key]["response"]=Noneifmemcache[key].has_key("data"):memcache[key]["data"]+=tcpacket.dataelse:memcache[key]["data"]=tcpacket.dataelse:ifmemcache.has_key(key):memcache[key]["response"]=dpkt.http.Request(memcache[key]["data"])try:stackless.tasklet(connection)(memcache[key]["response"],local_address,remote_address)stackless.run()exceptException,errmsg:logger.error("connectremoteremote_addressfailed:%s",errmsg)logger.debug("oldheaders(nonecontent-length):%s",memcache[key]["response"])memcache.pop(key)exceptException,errmsg:logger.error("dpkt.ethernet.Ethernetfailedinworker:%s",errmsg)如果大家只是想单纯的获取IP地址、端口、流量信息,那么问题就更简单了,这里只是抛砖引玉。另外再提供一段代码供参考:importpcap,dpkt,structimportbinasciidefmain():a=pcap.pcap()a.setfilter('udpportrange4000-4050')try:fori,pdataina:p=dpkt.ethernet.Ethernet(pdata)src='%d.%d.%d.%d'%tuple(map(ord,list(p.data.src)))dst='%d.%d.%d.%d'%tuple(map(ord,list(p.data.dst)))sport=p.data.data.sportdport=p.data.data.dport =int(binascii.hexlify(p.data.data.data[7:11]),16)print' :%d,From:%s:%d,To:%s:%d'%( ,src,sport,dst,dport)exceptException,e:print'%s'%en=raw_input()if__name__=='__main__':main()

阅读全文

与python实时抓包相关的资料

热点内容
ping命令设置包大小和周期 浏览:669
Android怎么找 浏览:359
cmd命令显示中文 浏览:839
配置路由器默认路由的命令是 浏览:591
加密计算器是什么 浏览:120
服务器怎么执行sql 浏览:974
小孩子命令 浏览:708
贷款申请系统源码 浏览:268
windowsxp文件夹打开后怎么返回 浏览:664
怎么把pdf变成图片 浏览:797
17年程序员事件 浏览:496
iishttp压缩 浏览:31
公司文件加密后拷走能打开吗 浏览:186
headfirstjava中文 浏览:894
腾讯云服务器怎么放在电脑桌面 浏览:8
批量生成图片的app哪个好 浏览:496
小米10电池校准命令 浏览:96
移动商城系统app如何开发 浏览:692
用安卓手机如何发高清短视频 浏览:339
怎样运行java程序运行 浏览:553