精华内容
下载资源
问答
  • 2020-12-10 12:59:56

    问题:之前我们系统上线后,因为是旧的系统,没有加统计的功能,比如用户喜欢那个页面,是哪些用户再访问,接口的负载能力等等。

    解决办法:1,现有代码更改,添加功能。现有代码侵入太多,工作量比较大

    2,想到tcpdump 抓包,然后分析文件。文件特别大,而且不能做到实时处理。

    3,采用python 脚本来处理,直接抓包80端口,加上一些处理,入库之内。

    环境搭建:

    1,使用到的第三方包:dpkt-1.8.8.tar.gz,

    impacket-master.zip,

    pcapy-master.zip

    pylibpcap-0.6.4.tar.gz

    PyMySQL3-0.5.tar.gz

    pypcap-1.1.6.tar.gz

    pypcap-master.zip

    下载地址:

    2,代码解析:

    pcapy.findalldevs()

    max_bytes = 20480

    promiscuous = False

    read_timeout = 10000 # in milliseconds

    pc = pcapy.open_live("eth1", max_bytes,

    promiscuous, read_timeout)

    pc.setfilter('tcp port 80')

    熟悉tcpdump 的都知道, eth1  是外网,然后 tcp port 80 是表示转80 端口的包。

    核心代码:

    recv_pkts 方法。

    解包,得到请求ip地址

    src = socket.inet_ntoa(ip.src)

    ds = socket.inet_ntoa(ip.dst)

    转换数据为 http 请求数据,这样http请求的数据都在里边,比如cookie,session,

    Url, 参数,表单等等。

    request = dpkt.http.Request(http_data)

    接下来, 就是统计数据了,自己实现即可。

    项目地址:

    将来的版本:

    1, 支持多包合并。

    2, 支持https

    更多相关内容
  • 系统环境:windows7,选择windows系统是因为我对自己平时日常机器上的流量比较感兴趣 ...抓包代码: from scapy.sendrecv import sniff from scapy.utils import wrpcap dpkt = sniff(count = 100) #这里
  • 本文实例为大家分享了python调用tcpdump抓包过滤的具体代码,供大家参考,具体内容如下 之前在linux用python脚本写一个抓包分析小工具,实在不想用什么libpcap、pypcap所以,简单来了个tcpdump加grep搞定。基本思路...
  • Python抓包并解析json爬虫 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫: 例如: 需要爬取网页中第二页的数据时,点击F12:right_arrow:...
  • Python改写抓包工具抓取抖音app的代码
  • Python抓包

    2021-12-06 08:15:05
    Python抓包

    使用Python进行数据爬取时,很多情况下需要登录或需要某些Cookie,如果直接从浏览器中复制Cookie的话每次都要重新复制,使用selenium比较慢,这样很麻烦。因此考虑使用Python抓包,这样的话每次只需要在程序运行后手动登录或点击一次,下面就可以自动进行了。

    依赖的包

    1. scapy (用于抓包)
    2. dpkt (用于分析)
    3. socket (用于获取数据包的IP)

    抓包代码

    from scapy.sendrecv import sniff
    from scapy.utils import wrpcap
    import dpkt
    import socket
    
    ifs = 'Intel(R) Ethernet Connection (5) I219-LM'  # 网卡
    ip_dst = 'xx.xx.xx.xx'  # 目标ip地址
    
    d = sniff(iface=ifs, count=10)
    wrpcap("demo.pcap", d) #保存为pcap文件
    

    分析代码

    可以使用dpkt或scapy中的rdpcap进行分析

    scapy中rdpcap分析

    d = rdpcap('demo.pcap')
    res = []
    for pkt in d.res:
        try:  # 只要应用层数据包,因此如果不包含应用层数据包则进入except
            IP_pkt = pkt.payload  # 获取IP层数据包
            TCP_pkt = IP_pkt.payload  # 获取TCP层数据包
            Raw_pkt = TCP_pkt.payload  # 获取应用层数据包
            data = Raw_pkt.load  # 获取包内具体数据
            res.append(data.decode(errors='ignore'))  # Bytes解码为str
        except AttributeError:
            pass
    for r_i in range(len(res)):
    	# 上面得到的数据每一条都是不完整的,下面就是进行具体筛选和拼接
        getIndex = res[r_i].find('*****这里放入筛选语句')
        if getIndex != -1:
            p_get = res[r_i][getIndex:-1]
            count = 1
            while res[r_i + count].find(r'HTTP/1.1 200 OK') == -1:  # 直到遇到下一个数据包开头
                p_get += res[r_i + count]
                count += 1
            break
    

    dpkt分析

    cookie = ''
    with open("demo.pcap", "rb") as f:
        pcap = dpkt.pcap.Reader(f)
        for timestamp, buf in pcap:
            eth = dpkt.ethernet.Ethernet(buf)  # 获得以太包,即数据链路层包
            if not isinstance(eth.data, dpkt.ip.IP):  # 判断是否是网络层数据
                continue
            ip = eth.data
            dst_ip = socket.inet_ntoa(ip.dst)
            if dst_ip == ip_dst and isinstance(ip.data, dpkt.tcp.TCP):  # 判断是否是传输层且是否符合目标IP(使用sniff过滤器也是一样的)
                tcp = ip.data
                try:
                    request = dpkt.http.Request(tcp.data)  # 请求包
                    for key, value in request.headers.items():  # 请求头
                        if key == 'cookie':
                            cookie = value
                            print(f'找到Cookie = {cookie}')
                except (dpkt.dpkt.NeedData, dpkt.dpkt.UnpackError):
                    continue
            if cookie != '':
                break
    if cookie != '':
        try:
            # 这里放置测试采集代码
            print('Cookie正确,开始采集数据')
            break
        except:
            cookie = ''
            print('Cookie不正确,继续获取')
    

    全部代码

    ifs = 'Intel(R) Ethernet Connection (5) I219-LM'  # 网卡
    ip_dst = 'xx.xx.xx.xx'  # 目标ip地址
    while 1:
        d = sniff(iface=ifs, count=100)
        wrpcap("demo.pcap", d) #保存为pcap文件
        cookie = ''
        with open("demo.pcap", "rb") as f:
            pcap = dpkt.pcap.Reader(f)
            for timestamp, buf in pcap:
                eth = dpkt.ethernet.Ethernet(buf)  # 获得以太包,即数据链路层包
                if not isinstance(eth.data, dpkt.ip.IP):  # 判断是否是网络层数据
                    continue
                ip = eth.data
                dst_ip = socket.inet_ntoa(ip.dst)
                if dst_ip == ip_dst and isinstance(ip.data, dpkt.tcp.TCP):  # 判断是否是传输层且是否符合目标IP
                    tcp = ip.data
                    try:
                        request = dpkt.http.Request(tcp.data)  # 请求包
                        for key, value in request.headers.items():  # 请求头
                            if key == 'cookie':
                                cookie = value
                                print(f'找到Cookie = {cookie}')
                    except (dpkt.dpkt.NeedData, dpkt.dpkt.UnpackError):
                        continue
                if cookie != '':
                    break
        if cookie != '':
            try:
                # 这里放置测试采集代码
                print('Cookie正确,开始采集数据')
                break
            except:
                cookie = ''
                print('Cookie不正确,继续获取')
    
    展开全文
  • python抓包实现知乎的私信发送功能!?...作者:elliot,一个有着全栈幻想的新零售产品经理github:https:github.combkidydida_spider说起python爬虫,很多人第一个反应可能会是scrapy或者pyspider,但是今天文章里...

    广告关闭

    提供包括云服务器,云数据库在内的50+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

    用python抓包实现知乎的私信发送功能!?...

    作者:elliot,一个有着全栈幻想的新零售产品经理github:https:github.combkidydida_spider说起python爬虫,很多人第一个反应可能会是scrapy或者pyspider,但是今天文章里用到是python下一个叫mitmproxy的抓包工具,对付一些非常规的数据获取还是很有效的。 不过凡事都是有利有弊,一来麻烦,二来呢不会自己动...

    一、介绍说明mitmproxy是一个支持http和https的抓包程序,有类似fiddler、charles的功能,只不过它是一个控制台的形式操作。 mitmproxy还有两个关联组件。 一个是mitmdump,它是mitmproxy的命令行接口,利用它我们可以对接python脚本,用python实现监听后的处理。 另一个是mitmweb,它是一个web程序,通过它我们可以...

    目标:萤石广场http:square.ys7.com 工具:python3.6、pycharm、requests库、json库思路:首先观察网页,发现网页源码里并没有存储数据,而是通过json数据动态加载的,那么我们可以通过抓包解决,如下图:? 找到json包后,就简单多了,直接抓包,写入数据即可! 话不多说,直接上代码了!? 导入库,写上抓包的url...

    python下的网络抓包库pylibpcap、pypcap、pycap这些库其实这些都是libpcap的python绑定实现,libpcap才是真正的核心。 在http:pypi.python.orgpypipylibpcap0.6. 2在http:pypi.python.orgpypipcapy0.10. 2pypcaphttp:code.google.comppypcaphttp:www.monkey.org~dugsongpypcaphttp:pycap.sourceforge.net目前pypcap和...

    我们小队不知道做什么,于是在讨论了一分钟后决定用python来写一个抓取学生成绩的app和分析(交完之后才上课发现那老师基本全是搞硬件的,我瞬间没有要上课的想法了)。 不管怎么样,学分还是要拿的。 早写了个登陆界面。 测试了下信息的输入,没有出错。 接下来写模拟登陆。 昨天用chrome抓了半天的包,就是找不到我...

    table.append(1)image = image.point(table,1)#识别验证码result =tesserocr.image_to_text(image) print(result)fiddler抓包工具:fiddler(中文名称:小提琴)是一个http的调试代理,以代理服务器的方式,监听系统的http网络数据流动fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间...

    專 欄邓旭东,python中文社区专栏作者。 简书:http:www.jianshu.comu1562c7f16a04今天给大家录制了一个爬新浪微博的爬虫,也用到了抓包分析网址,但相较于以前,单纯的使用抓包分析网址在新浪微博是无效的。 cookie是什么 某些网站为了辨别用户身份、进行 session跟踪而储存在用户本地终端上的数据(通常经过加密)...

    本次学习了手机抓包的相关知识,了解了charles-mitmproxy-appium的基本使用,通过对当当图书评论的爬取,得以实践。 那么就让我们来看看当当图书「活着」的差评吧! 01 charlescharles是一个app抓包工具,与我之前最先使用的filddler相似,可以得到手机app运行过程中发生的所有网络请求和响应内容。 这里简单说一下...

    scapy是一个可以让用户发送、侦听和解析并伪装网络报文的python程序。 这些功能可以用于制作侦测、扫描和攻击网络的工具。 在 python 代码中可以通过 sniff 函数调用抓包分析,并对抓到的包进行回调操作。 sniff 方法定义:sniff(count=0, store=1, offline=none, prn=none, filter=none,l2socket=none, timeout=none...

    开启代理抓包软件(这里代理抓包软件使用的是fiddler)fiddler的使用这里不再介绍,需要打开远程代理,并在手机中安装fiddler根证书这里笔者开启的远程代理的地址是192. 168.2. 244:8888关于证书安装有些细节,fiddler默认的根证书是cer格式,部分手机可能只能识别pem格式证书直接使用openssl 转一下就行了(openssl ...

    百度指数(baidu index)是以百度海量网民行为数据为基础的数据分析平台,是当前互联网乃至整个数据时代最重要的统计分析平台之一,自发布之日便成为众多企业营销决策的重要依据。 ? 简单的deom,python关键词百度指数采集,抓包cookie及json数据处理,需要注意协议头的添加,尤其是cookies! 几个关键点:1. 抓包...

    我们都知道 iphone 和低版本 android 抓包,只需要设置代理和配置证书就可以顺利抓包但是升级了 targetsdkversion 到 28后发现,在 android 7.0 以上机型 charles 抓取 https 包时显示找不到证书,但是 android 6.0 机型还是可以正常抓包。 这其中的原因是,从 android 7.0 开始,默认的网络安全性配置修改了解决方法...

    答案就是谷歌chrome浏览器的f12快捷键,也可以通过鼠标右键菜单“检查”(inspect)打开chrome自带的开发者工具,开发者工具会出现在浏览器网页的左侧或者是下面(可调整),它的样子就是这样的:? 让我们简单了解一下它如何使用:谷歌chrome抓包:1. 最上面一行菜单左上角箭头用来点击查看网页的元素第二个手机、平板...

    简单介绍下本次的开发环境:python3requestspsycopg2(操作postgres数据库)抓包分析前一篇文章介绍过抓包前要做的准备,这里不再做相关说明。 本次实战对抓取的公众号没有限制,但不同公众号每次抓取之前都要进行分析。 打开fiddler,将手机配置好相关代理,为避免干扰过多,这里给fiddler加个过滤规则,只需要指定...

    app抓包前面我们了解了一些关于 python 爬虫的知识,不过都是基于 pc 端浏览器网页中的内容进行爬取。 现在手机 app 用的越来越多,而且很多也没有网页端,比如抖音就没有网页版,那么上面的视频就没法批量抓取了吗? 当然在学习python的道路上肯定会困难,没有好的学习资料,怎么去学习呢? 答案当然是 no!...

    解析 ,fiddler抓包工具的配置大家自己百度吧,教程都很详细3. 打开fiddler和模拟器,在模拟器打开哔哩哔哩软件,fiddler我是通过查找分析之后之后过滤的域名4. 我们通过打开b站的相应版块,然后进行往下翻页之后,fiddler就会根据我之前选择过滤的域名给我标黑5. 我们点开其中一条标黑的url,然后和b站软件的进行...

    usersdeenappdatalocalmicrosoftwindowsappsubuntu1804.exe run bash ; @=cmd.exe c start d %v bash.exe 保存为reg格式,运行,上面有些东西要修改,懂的自然懂 安卓app google play mt文件管理,高中生写的,牛逼死了 juicessh vps管理 termux gnu root qpython 抓包精灵...

    下面,我们先来讲一讲简单地模拟登陆,这次模拟登录的网站是英语课本随行课堂《视听说教程3》上的听力训练网址:外教社课程中心工具如下:ide:pycharm python3.6os:window10抓包分析首先我们看一下 url get到的网页:? 看见上面的登录按钮了吗? 这也就是登录的窗口,我们点击一下:? f12加f5刷新可以得到,我们...

    展开全文
  • python selenium 抓包代码封装

    千次阅读 2020-07-02 09:16:00
    # 导入selenium模块中的web引擎 from selenium import webdriver from selenium.webdriver.chrome.options import Options from pyquery import PyQuery as pq # 时间 下载工具 import time, wget, os class ...
    # 导入selenium模块中的web引擎
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from pyquery import PyQuery as pq
    # 时间 下载工具包
    import time, wget, os
    
    
    class Network(object):
        def __init__(self, url, seconds=10):
            # 这个是一个用来控制chrome以无界面模式打开的浏览器
            # 创建一个参数对象,用来控制chrome以无界面的方式打开
            options = Options()
            options.add_experimental_option('excludeSwitches', ['enable-automation'])
            options.add_argument('--headless')  # 设置Chrome为无头模式
            options.add_argument('--no-sandbox')
            options.add_argument('--disable-dev-shm-usage')
            options.add_argument('blink-settings=imagesEnabled=false')
            options.add_argument('--disable-gpu')
            # 建立浏览器对象 ,通过Phantomjs
            self.browser = webdriver.Chrome(options=options)
            self.url = url
            # 发起请求
            self.browser.get(url)
            time.sleep(3)  # 等待3s
            # 等待一定时间,让js脚本加载完毕
            self.browser.implicitly_wait(seconds)  # seconds 隐式等待
    
            # 静态文件,图片地址
            cur_dir = os.path.split(os.path.realpath(__file__))[0]
            self.static_src = os.path.abspath(cur_dir + '/./../static/')
    
            # 常用变量 页面源码,挂载在jq上
            self.JQuery = pq(self.browser.page_source)
    
        # 浏览器器对象
        def bom(self):
            return self.browser
    
        # 关闭浏览器
        def close_browser(self):
            self.browser.quit()
    
        # 模拟浏览器抓取数据主业务 重构 返回浏览器对象
        def main(self, url='', seconds=20):
            # 访问url
            if url == '':
                url = self.url
    
            self.browser.get(url)
            time.sleep(3)  # 等待3s
            # 等待一定时间,让js脚本加载完毕
            self.browser.implicitly_wait(seconds)  # seconds 隐式等待
            #页面源码 页面源码,挂载在jq上
            self.JQuery = pq(self.browser.page_source)
            return self.browser
    
        # 如果列表的长度为1强制转换为字典
        def list_or_dict(self, arr):
            if len(arr) == 1:
                return arr[0]
            else:
                return arr
    
        # 通过tagName获取对象
        def tag_name(self, tag_name):
            return self.list_or_dict(self.browser.find_elements_by_tag_name(tag_name))
    
        # 通过id获取对象
        def id(self, id):
            return self.browser.find_element_by_id(id)
    
        # 通过className 获取对象
        def class_name(self, class_name):
            return self.list_or_dict(self.browser.find_elements_by_class_name(class_name))
    
        # 通过a标签href属性获取对象 用链接文本定位超链接
        def href_name(self, href_name):
            return self.list_or_dict(self.browser.find_elements_by_partial_link_text(href_name))
    
        # css选择器定位
        def css_selector(self, css_selector):
            return self.list_or_dict(self.browser.find_elements_by_css_selector(css_selector))
    
        # find 定位选择
        def find(self, element, name):
            if element.find_elements_by_css_selector(name):
                return element.find_elements_by_css_selector(name)
    
        # 获取元素的属性
        def attr(self, element, attr_name):
            if isinstance(element, list):
                arr = []
                for e in element:
                    arr.append(e.get_attribute(attr_name))
                return arr
            else:
                return element.get_attribute(attr_name)
    
        # 获取元素的文本
        def text(self, element):
            if isinstance(element, list):
                arr = []
                for e in element:
                    arr.append(e.text)
                return arr
            else:
                return element.text
    
        # 获取页面body数据
        def get_body(self):
            # 返回body对象
            return self.tag_name('body')[0]
    
        # 下载文件,图片等
        def download(self, urls, dir=''):
            # 判断url的数据属性
            if isinstance(urls, list):
                for url in urls:
                    # 下载文件参数 文件url 保存的地址
                    f_name = url.split('/')[-1]
                    if dir != '':
                        wget.download(url, os.path.abspath(dir + '/' + f_name))
                    else:
                        wget.download(url, os.path.abspath(self.static_src + '/' + f_name))
            else:
                # 下载文件参数 文件url 保存的地址
                f_name = urls.split('/')[-1]
                if dir != '':
                    wget.download(urls, os.path.abspath(dir + '/' + f_name))
                else:
                    wget.download(urls, os.path.abspath(self.static_src + '/' + f_name))
            return True
    

    # 调用

     

    # 设置访问的url
    url = "https://www.runoob.com/python3/python3-namespace-scope.html"
    # 初始化实例
    net = Network(url)
    
    ths=net.JQuery.find('.table_wrapper-table thead th').items()
    trs=net.JQuery.find('.table_wrapper-table tbody tr')
    trs_len=trs.length
    # 临时变量 存储 key名称
    展开全文
  • 使用fiddler工具进行抓包,使用python进行osc乱弹抢沙发
  • python实现抓包工具 基于winpcap

    千次阅读 2021-06-02 16:08:39
    一、介绍 平时发网络数据都是基于应用层的收发,如果要...三、代码编写 1、导入库 from winpcapy import WinPcapUtils 2、发数据 arp_request_hex_template = "%(dst_mac)s%(src_mac)s08060001080006040001" \ "%(se
  • 抓包的同时解析数据包(不能等抓包停止后才解析),可判断IP、TCP或UDP数据包的校验和是否正确;支持BPF过滤器,抓包过程可以暂停和停止;可将数据包存储在pcap文件中,以供wireshark或其它数据包解析工具分析;可以...
  • python如何抓包

    2020-12-10 13:38:55
    系统环境:windows7,选择windows系统是因为我对自己平时日常机器上的流量比较感兴趣python环境:python2.7 ,这里不选择python3的原因,是因为接下来要用到的scapy包在...需要的python包:scapy和dpkt抓包代码...
  • 最近项目需要抓包功能,并且抓包后要对数据包进行存库并分析。抓包想使用tcpdump来完成,但是tcpdump抓包之后只能保存为文件,我需要将其保存到数据库。想来想去shell脚本似乎不太好实现,于是用了比较热门的python...
  • python实现——windows下批量抓包

    千次阅读 2021-12-16 18:35:05
    希望能有一个工具简化抓包过程。 思路1:本地开启web服务,如果是开启wireshark,然后批量爬虫的话,会得到包含多个追踪流的数据包,如果借助scapy进行拆包,要处理的异常情况太多。放弃。 思路2:使用sniffer抓包。...
  • burp抓包+python定时签到burp抓包+python定时签到前言:学校的签到有点烦,时间定在24.00到0.00,刚好在我睡觉的时候,于是便想写点东西来定时签到,代码很简单,但过程中学习了很多首先:我们学校的签到是通过手机...
  • 浏览器渲染的网页是丰富多彩的数据集合,而爬虫得到的是网页的源代码htm有时候,我们不能在网页的html代码里面找到想要的数据,但是浏览器打开的网页上面却有这些数据。这就是浏览器通过ajax技术异步加载(偷偷下载...
  • 一、请求方法里面的:proxies 命名参数1.fiddle HTTPS 设置、image.png打开百度 随便输入点东西 搜索一下image.png浏览器开启代理image.png脚本编写可以通过任意请求方法的proxies 命名参数来指定代理方式。...
  • http&https,python抓包知多少

    千次阅读 2020-12-07 19:41:42
    https,python抓包知多少在有些情景下,需要拦截所有的http包和https数据包,http包很好抓,但是https包相对比较复杂,在此文章中,主要介绍http和https混合代理。首先简单介绍下https,https=http+ssl,整体认证过程很复杂...
  • python进行tcpdump抓包

    千次阅读 2020-05-03 08:12:15
    1 python进行tcpdump抓包 使用tcpdump抓包需要使用子进程进行操作比较好,不影响其他主代码逻辑,主要思路总结如下: 开启抓包:使用 self.tcpprocess = subprocess.Popen(cmd1),将tcpdump命令传入cmd命令内; ...
  • python3 抓包 解包Python struct module is capable of performing the conversions between the Python values and C structs, which are represented as Python Strings. Python struct 模块能够执行Python值和C...
  • Python 爬虫、抓包

    千次阅读 2020-05-04 16:16:50
    什么是爬虫? 爬虫就是模拟客户端(浏览器、电脑app、手机app)发送网路请求,获取相应,按照规则提取数据的程序。 模拟客户端发送网路请求:照着浏览器一模一样的请求,获取和浏览器...python3,pycharm、谷歌或者...
  • Python抓包并解析json爬虫

    千次阅读 多人点赞 2020-11-01 22:18:19
    Python抓包并解析json访问爬虫 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫: 例如: 需要爬取网页中第二页的数据时,点击F12➡网络...
  • python 抓包与解包

    万次阅读 多人点赞 2018-07-19 10:31:39
    我使用的环境为:Windows10、python3.6、scapy 2.4.0 下面是代码: import os from scapy.all import sniff,wrpcap,Raw,IP,TCP def scanMacIp(): ''' scapy扫描获取局域网主机mac和ip ''' from scapy.all ...
  • charles快速转换python语言
  • 目前在完成一个网络抓包工具,用Python实现。在Windows上抓包首选的库或接口自然是Winpcap。自然Winpcap这种接近系统底层和硬件的程序一般都是c语言写的,他提供的开发接口原生也是c的。不过还好,人们已经为其他...
  • 主要介绍了Python mitmproxy安装和使用过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,973
精华内容 14,389
关键字:

python代码抓包