csdn_Mr_H 2021-07-28 19:37
浏览 42
已结题

有朋友使用过pypcap吗,遇到了问题

想实现一个python代码版抓包工具,了解到pypcap可以用于网络请求抓包,
想获取请求体参数,请求响应数据
有点不知道怎么做,希望有经验的朋友看一下

下面是我找到的demo和资料

import pcap

# list all of the Internet devices
devs = pcap.findalldevs()
print(*devs, sep='n')

pc = pcap.pcap(devs[3], promisc=True, immediate=True, timeout_ms=50)
# fiter http pcakets
pc.setfilter('tcp port 80')
for ptime, pdata in pc:
    print(ptime, pdata)
    # TODO 如何解析想要的数据????
import pcap
import dpkt
import socket

pc = pcap.pcap()
for ptime, pdata in pc:

    # print(f'ptime:{ptime}')
    # print(f'pdata:{pdata}')

    eth = dpkt.ethernet.Ethernet(pdata)

    # print(f'eth:{eth}')

    if eth.data.__class__.__name__ == 'IP':
        ip = eth.data
        src = socket.inet_ntoa(ip.src)
        dst = socket.inet_ntoa(ip.dst)
        tcp = ip.data  # tcp.dport  tcp.sport
        try:
            request = dpkt.http.Request(tcp.data)
        except (dpkt.dpkt.NeedData, dpkt.dpkt.UnpackError):
            continue
        if request.headers['host'] == 'www.baidu.com':  # 自行替换需要抓的网站。
            # print(request)
            host = request.headers['host']
            connection = request.headers['connection']
            # accept = request.headers['accept']
            user_agent = request.headers['user-agent']
            accept_encoding = request.headers['accept-encoding']
            accept_language = request.headers['accept-language']
            cookie = request.headers['cookie']
            # break

            print('-----------')
            print('host->%s' % host)
            print('connection->%s' % connection)
            # print('accept->%s' % accept)
            print('user_agent->%s' % user_agent)
            print('accept_encoding->%s' % accept_encoding)
            print('accept_language->%s' % accept_language)
            print('cookie->%s' % cookie)

参考资料:

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月5日
    • 创建了问题 7月28日

    悬赏问题

    • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
    • ¥20 软件测试决策法疑问求解答
    • ¥15 win11 23H2删除推荐的项目,支持注册表等
    • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
    • ¥15 qt6.6.3 基于百度云的语音识别 不会改
    • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
    • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
    • ¥15 lingo18勾选global solver求解使用的算法
    • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
    • ¥20 测距传感器数据手册i2c