分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

这篇文章紧接着《使用Python来分离或者直接抓取pcap抓包文件中的HTTP流》展开,那篇文章是昨天写的,今天早上突然又想实现一个直接抓包的程序,于是天没亮就又爬起来了...

本文的代码以及前文的代码在github的地址:https://github.com/marywangran/Python-Http-cap-demux/tree/master

Python有很多库可以实现抓包和分析包,典型就是pypcap用来抓包,dpkt用来分析,关于这两个库的安装,我有一些随笔,虽然这些对于一个Python老手而言似乎是信手拈来可以吹着口哨搞定的事,但是对于新手而言,似乎必然会遇到这样那样的问题,因此我先分享一些关于安装方面的事情。
        Python的库太过丰富,但是前提是你必须可以随意安装它,我比较推荐使用pip安装,它就像apt-get,yum这样,甚至语法都一样:
apt-get/yum/pip install aaaaa
但是pip要真的用起来似乎还是要花点时间的。我首先下载了setuptool:
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-3.0.tar.gz
然后解压,进入其主目录后执行:
python ./setup.py build
python ./setup.py install

然后在我了解到pip本身也是一个Python库的时候,我执行了:
easy_install pip
随后得到了令人遗憾的错误提示,说什么”unknown url type: https“,然后我问了度娘,解决了该问题,很简单,执行下面的步骤即可:
1.yum install openssl-devel
2.重新编译Python并install

接下来就可以easy_install pip了,然后就可以:
pip install pypcap
pip install dpkt

最后,代码就可以随便写了...

我主要还是想在直接抓包的时候就过滤好我想要的包,而不是先抓一个超级大的pcap文件,然后再慢慢解析分流。只要脑子里面有清晰的逻辑,并且手边有一个得心应手的编程语言,模拟任何事情都不是难事,把昨天的代码一改,把分析pcap的逻辑改成pypcap/dpkt抓包解包的逻辑,一切似乎就是那么简单。代码如下:

#!/usr/local/bin/pythonimport pcapimport dpktcap = pcap.pcap('eth3')    cap.setfilter('tcp port 80')files4out = {}url = 'www.baidu.com'for ptime,pktdata in cap:      pkt = dpkt.ethernet.Ethernet(pktdata)    if pkt.data.data.__class__.__name__ <> 'TCP':        continue    ipsrc_tag = 0    ipdst_tag = 0    sport_tag = 0    dport_tag = 0    ipdata = pkt.data    sip='%d.%d.%d.%d'%tuple(map(ord,list(ipdata.src)))    dip='%d.%d.%d.%d'%tuple(map(ord,list(ipdata.dst)))    tcpdata = pkt.data.data    sport = tcpdata.sport    dport = tcpdata.dport        src_tag = sip    dst_tag = dip    sp_tag = str(sport)    dp_tag = str(dport)    if ord(list(ipdata.src)[0]) > ord(list(ipdata.dst)[0]):        temp = dst_tag        dst_tag = src_tag        src_tag = temp                if sport > dport:        temp = sp_tag        sp_tag = dp_tag        dp_tag = temp    content = url    FLAG = 0        appdata = tcpdata.data    if appdata.find(content) <> -1:        print 'find'        FLAG = 1        name = src_tag + '_' + dst_tag + '_' + sp_tag + '_' + dp_tag    if (name) in files4out:        item = files4out[name]        fi = 0        cnt = item[1]        if cnt < 6 and item[3] <> 1:            item[1] += 1            item[2].append(pktdata)            if FLAG == 1:                item[3] = 1        elif item[3] == 1:            for index in range(cnt+1):                pktdatai = item[2][index]                pkti = dpkt.ethernet.Ethernet(pktdatai)                ipdatai = pkti.data                tcpdatai = pkti.data.data                sipi='%d.%d.%d.%d'%tuple(map(ord,list(ipdatai.src)))                dipi='%d.%d.%d.%d'%tuple(map(ord,list(ipdatai.dst)))                sporti = tcpdatai.sport                dporti = tcpdatai.dport                print '[datai]' + sipi + ':' + str(sporti) + '-' + dipi + ':' + str(dporti)            item[1] = -1                        print '[data]' + sip + ':' + str(sport) + '-' + dip + ':' + str(dport)        else            # 这里优化空间巨大!            # 为了不让随意的五元组无情地侵占字典空间,这里有几个策略:            # 1.发现FIN的时候,再容许这个流在字典中存在固定的时间段或者在允许此流来回5个包,之后删除字典的索引            # 2.如果超过6个包都没有等到GET /$url,那么在timewait的时间内,此流不允许占据字典空间            del files4out[name]                            else:        item = [0, 0, [], 0, 0]        item[2].append(pktdata)        files4out[name] = item

简单,高效!这个代码也没花多长时间,写着玩。值得一提的是,请不要再以性能为由去鄙视除了C之外的别的语言,我也曾经是性能至上客的一员,也曾经为此放弃了Java,但是我后悔了...这个代码顺势可以扔到github上让编程者们嘲笑,也可以顺势跟经理或者老婆炫耀一下以便遭到他们抑扬顿挫地蔑视,并以此为乐。然后我就可以大笑着离开去干我喜欢的事情咯,比如看看世界史,研究一下台风,而这些是身负KPI的经理们和主妇们所无法指染的。座椅爆炸...

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片:

带尺寸的图片:

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block var foo = 'bar'; 

生成一个适合你的列表

  • 项目

    • 项目

      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目 Value
电脑 $1600
手机 $12
导管 $1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to-HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n−1)!∀n∈N 是通过欧拉积分

Γ(z)=∫0∞tz−1e−tdt&ThinSpace;.\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞​tz−1e−tdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

ganttdateFormat  YYYY-MM-DDtitle Adding GANTT diagram functionality to mermaidsection 现有任务已完成               :done,    des1, 2014-01-06,2014-01-08进行中               :active,  des2, 2014-01-09, 3d计划一               :         des3, after des2, 5d计划二               :         des4, after des3, 5d
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间,文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

Python实现抓取访问特定URL的数据包相关推荐

  1. python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...

    python爬虫抓取数据 小试Python--爬虫抓取大众点评上的数据 发布时间:2017-04-07

  2. python抓取数据包_利用python-pypcap抓取带VLAN标签的数据包方法

    1.背景介绍 在采用通常的socket抓包方式下,操作系统会自动将收到包的VLAN信息剥离,导致上层应用收到的包不会含有VLAN标签信息.而libpcap虽然是基于socket实现抓包,但在收到数据包 ...

  3. socksDroid结合charles抓取绕过代理的apk数据包(快手/闲鱼等)

    如果文章无法浏览或者图片失效,可前往原文浏览 原文链接 socksDroid结合charles抓取绕过代理的apk数据包(快手/闲鱼等)直接点击即可前往访问. 前言 如今很多软件做了安全防护,尤其是类 ...

  4. 【羊了个羊】Burp抓取IOS微信小程序数据包

    描述 最近,小游戏"羊了个羊"在朋友圈刷屏,网友纷纷表示,游戏开发者多少有个病要治!!! 本文记录,如何使用Burp抓取ios微信小程序数据包. 工具准备 Burp 苹果手机 wi ...

  5. Proxifer+BurpSuite 抓取PC客户端HTTP(s)数据包

    针对PC客户端(C/S架构)的渗透测试,抓包是一个挡在我们前面的问题.如果可以使用BurpSuite抓取客户端的HTTP(S)流量,那么测试过程将更有效率,也更有利于漏洞挖掘.本文分享一个抓取PC客户 ...

  6. Python 动态抓取 Android 进程内存信息 数据可视化

    1-简介 如果我们想要测试我们的某些应用在安卓系统上的性能使用情况, 我们可以通过adb桥去查询, 但是如果每次都去手动查询, 自己生成报表,那无疑是非常繁重的工作 而python就是实现性能自动化测 ...

  7. python自动抓取网管软件的数据_python实现scrapy爬虫每天定时抓取数据的示例代码...

    1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...

  8. Python+selenium 抓取美团单页接口数据里的用户评论和用户名称以及打分数据

    一.原理 selenium的原理很简单,就是模拟人对浏览器的操作,人是怎么操作的,在编写代码时就以这个为逻辑来进行编写.编写起来很是简单,并且也能够很容易纠错. 缺点是,速度比较慢,抓取起来耗时,并且 ...

  9. 利用charles 抓取ios app的https数据包-----软件配置和抓取步骤

    背景:最近在做数据缓存相关的工作:我们的设备是放在高铁里面的,主要是提供wifi服务.然而我们的wifi是由sim卡4g网络拨号提供的,用户在上网时需要下载我们的APP:掌上高铁:所以领导提出一个要求 ...

最新文章

  1. .NET与java的MVC模式(3):ASP.NET 页生命周期概述
  2. 微信小程序开发第四弹
  3. dedecms织梦模板修改专题路径的方法
  4. 千万级日订单下,饿了么异地多活数据实施DRC的应用实践
  5. 解读Dataphin流批一体的实时研发
  6. 干货总结:SPI总线详细要点
  7. Java工作笔记-使用fastjson把对象直接生成为Json
  8. web框架 http协议
  9. 牛逼! IDEA 2020 要本土化,真的是全中文了!中国开发者话语权越来越大了
  10. Java中的HashCode 1 之hash算法基本原理
  11. [论文评析] ArXiv,2021, Focal Self Attention技术分析
  12. ORACLE数据类型与java数据类型对应
  13. Linux内核开发者大会 开始报名啦~
  14. PCB贴片元器件手工焊接技巧及要点
  15. Haproxy配置应用文档
  16. 在线购物系统分析类图
  17. 试题 算法训练 P0704
  18. 首发创新微信聊天内容制作生成器微信小程序源码下载支持多种制作
  19. python调用谷歌地图api_python显示地图与谷歌地图
  20. 7的整除特征 三位一截_小学数学竞赛七、数的整除特征(一)

热门文章

  1. Java面试题日积月累(JavaSE40道)
  2. PHP 3D大富翁,3D立体大富翁手游《Board Kings》多人在线免费对战
  3. 一加5t刷android p,一加5T刷机包
  4. 关于手机开发的一些比较基础的知识
  5. npm run dev 报错no-octal-escape.js:41
  6. c++文件读取、容器(vector、map)、迭代(iterator)、排序(sort)综合案例
  7. 概率论的学习和整理13--方差和协方差(未完成)
  8. 1-13 格式化输出
  9. 【云和恩墨业务介绍】之超融合存储解决方案 - zData Light Storage
  10. Android FrameWork 学习之Android 系统源码调试