python抓包拦截_采用python实现抓包构建故障分析平台

前言:

同事今天和我说,他现在的任务在做一个头疼的问题,说时尚了点,就是用自动化解脱心碎及放弃的处理故障的杂事,他这边刚入职,貌似是带领一帮小弟解决别人搞不定的问题,但是有些业务部够单纯,把事直接抛给我同事这边。。。 很无敌吧。

所以那,计划做一个自动化平台,可以去问题端去抓数据包,然后分析数据包,入库,邮件通知,使这些个流程用平台串联起来。

我这里就说下,我的解决思路和开发思路:

工具:

pcap dpkt saltsatck mysql tornado tcpdump

pcap               是用来抓包 (这个是tcpdump的一个库)

dpkt                 是用来解析数据包的

celery              异步任务

实现两大功能,用户他自己抓包,然后上传到页面上,然后我后端解析后,返回结果。

用户在平台上提交问题服务器的ip,并选定测试类型,我这里会到服务端跑用python的pcap抓包并分析结果,把结果上报到平台。

关于自动抓包分析,以前和同事做过处理dns攻击的,方案流程和第三方的工具和我上述是一样的。

遇到攻击,会分析dns的攻击的特征,然后再黑洞系统注射特征码禁止。

需要注意的是,在抓数据的时候,可能会产生堵塞,尤其是pcap,dpkt这东西,需要在后台自己的玩。这个时候就需要用celery把抓包分析包的任务放在后台执行。 你要是觉得subprocess合理的话,也可以用用subprocess 的pipe的,但是个人觉得也是个办法 ,更简单的方法是用tcpdump -w 写到一个文件里面,然后用dpkt去解析,这样的话,也不用pcap去解析啦。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Python中抓取浏览器中的network数据,可以使用第三方库,如mitmproxy或Pyppeteer。这些库可以帮助你拦截分析网络请求和响应。 1. mitmproxy:它是一个强大的抓包工具,可以拦截HTTP和HTTPS流量。你可以使用 mitmproxy 库来编写自定义脚本,以捕获和处理网络数据。 以下是一个简单示例,演示如何使用mitmproxy库来拦截和打印网络请求和响应: ```python from mitmproxy import ctx def request(flow): print(flow.request.url) def response(flow): print(flow.response.text) addons = [ request, response ] if __name__ == '__main__': from mitmproxy.tools.main import mitmdump mitmdump(['-s', __file__]) ``` 在这个示例中,我们定义了两个函数:`request()`和`response()`。这两个函数将被mitmproxy调用以处理每个网络请求和响应。在这里,我们只是简单地打印了请求的URL和响应的文本。 2. Pyppeteer:它是一个无头浏览器的Python库,基于Chrome浏览器的开发者工具协议。你可以使用Pyppeteer来模拟浏览器行为,并获取网络请求和响应。 以下是一个简单示例,演示如何使用Pyppeteer库来抓取网络请求和响应: ```python import asyncio from pyppeteer import launch async def main(): browser = await launch() page = await browser.newPage() await page.goto('https://www.example.com') requests = await page.evaluate('''() => { return Array.from(window.performance.getEntries(), entry => ({ url: entry.name, method: entry.initiatorType, status: entry.response ? entry.response.status : null })); }''') for request in requests: print(request) await browser.close() asyncio.run(main()) ``` 在这个示例中,我们使用Pyppeteer启动了一个无头浏览器,并打开了一个页面。然后,我们使用页面的`evaluate()`方法来执行JavaScript代码,以获取网络请求和响应的信息。最后,我们打印了每个请求的URL、方法和状态码。 请注意,这些示例只是展示了如何使用mitmproxy和Pyppeteer来抓取网络数据的基本概念。具体的实现和需求可能会有所不同,你可能需要根据自己的项目需求进行进一步的定制和开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值