【问题标题】:How to sniff HTTP packets in python?如何在python中嗅探HTTP数据包?
【发布时间】:2013-04-09 15:37:45
【问题描述】:

我想通过python(version2.6..这可能吗?我可以用scapy或没有其他外部模块来嗅探我计算机中的所有HTTP数据包吗?

【问题讨论】:

标签: python http sniffer


【解决方案1】:

Scrapy 仅用于从网页或类似的结构化文档中提取数据。

要真正读取来自 NIC 的数据包,最佳性能选择可能是使用具有 python 绑定的 C/C++ API。

例如,WireShark 有一个Python API

Pcapy 是一个使用 libpcap 进行数据包捕获的模块。

LibPCAP是为TCPDUMP编写的抓包库,也用于WireShark。

另一个选择是尝试 d​​pkt python 模块。这是一个不错的write up。 这是example 使用 dpkt 和 pcap 来嗅探 HTTP 数据包。

编辑:哎呀,我误读了 scapy。谢谢根!

正如您所提到的,Scapy 是另一个也使用 LibPCAP 的 python 模块。 这个documentation 有一个嗅探的例子。

如果您在 Python 2.7 上运行时遇到问题,请查看post

【讨论】:

  • WireShark 的 Python API 现在好像没了。 PyShark 似乎是目前最积极的方法,如下面的答案所述。
【解决方案2】:

https://github.com/KimiNewt/pyshark

tshark 的 Python 包装器

用法:

>>> capture = pyshark.LiveCapture(interface='eth0')
>>> capture.sniff(timeout=50)
>>> capture
<LiveCapture (5 packets)>
>>> capture[3]
<UDP/HTTP Packet>

for packet in capture.sniff_continuously(packet_count=5):
    print 'Just arrived:', packet

【讨论】:

    【解决方案3】:

    pypcap,https://code.google.com/p/pypcap/ libpcap 的简化面向对象的 Python 扩展模块 - 当前的 tcpdump.org 版本,一些 BSD 操作系统附带的旧版本,以及适用于 Windows 的 WinPcap 端口.这是一个Windows版本。如果你使用#nix,只需安装pcapdpkt模块。

    【讨论】:

    • 好的,如果我想使用 dpkt 和 pcap 模块进行嗅探,如何使用它们嗅探 HTTP 数据包?我很乐意举个例子。我看到了一个例子,如何用这个模块嗅探 icmp 数据包而不是 HTTP 数据包。
    【解决方案4】:

    FTR,Scapy 将从 2.4.3 开始支持 HTTP 数据包: https://scapy.readthedocs.io/en/latest/layers/http.html

    >>> HTTPRequest().show()
    ###[ HTTP Request ]###
      Method= 'GET'
      Path= '/'
      Http_Version= 'HTTP/1.1'
      A_IM= None
      Accept= None
      Accept_Charset= None
      Accept_Datetime= None
      Accept_Encoding= None
      [...]
    

    嗅探演示:

    from scapy.layers.http import * # read the doc
    from scapy.sendrecv import sniff
    sniff(lfilter=lambda x: HTTP in x, prn=lambda x: x.summary())
    

    【讨论】:

      猜你喜欢
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      相关资源
      最近更新 更多