当前位置: 首页 > news >正文

代理ARP与传统ARP在网络通信中的应用及区别研究

一些问题

  1. 路由器隔离广播域,每个接口/网段都是独立的广播域
  2. ARP请求是二层广播包,广播包没法通过路由器
  3. ARP请求没法穿越互联网到达目标主服务器

一些思考

  1. 电脑访问互联网服务器的时候,ARP询问的内容,真的是访问服务器么?
    1. 当电脑访问互联网服务器(如百度)时,​​ARP询问的是默认网关的MAC地址,而非服务器本身的MAC​​。
    2. 访问互联网服务器是跨网段通信,目标服务器与本地设备不在同一个子网,数据必须通过网关转发
    3. ARP仅在同一广播域有效,无法跨越路由器直接获取外网设备的MAC
  2. 什么是代理ARP?和ARP有什么区别?什么场景会用到代理ARP?
    1. 代理ARP:路由器代替其他设备响应ARP请求的行为,使设备误以为目标IP在同一个子网内
    2. 代理ARP与ARP的区别
      特性普通ARP代理ARP
      ​响应者​目标设备自身路由器/网关
      ​使用场景​同一子网内通信跨子网通信(无网关配置时)
      ​ARP表记录​真实IP-MAC映射外网IP→路由器MAC
      ​拓扑要求​无需路由器需启用代理ARP的路由器
    3. 代理ARP的使用场景
      1. 无网关配置的网络
        1. 场景:设备未设置默认网关,但需访问其他子网
        2. 解决方案:路由器代理ARP欺骗设备,使其认为目标可达
      2. 透明桥接环境
        1. 场景:防火墙或透明模式设备需隐藏自身存在
      3. 移动IP/VPN通道
        1. 场景:远程设备需要像本地设备一样被访问
        2. 实现:本地网关代理响应远程设备的ARP请求
  3. 代理ARP和网关(默认路由)设置有什么关系?
    1. 互补关系
      1. 有网关配置:设备直接通过网关转发跨子网流量
      2. 无网关配置:依赖代理ARP实现跨子网通信
    2. 设备通信决策流程:
      1. 检查目标IP是否在同一子网
        1. 是 → 直接ARP询问目标
        2. 否 → 检查是否有默认网关
          1. 有网关 → ARP询问网关MAC    
          2. 无网关 → 仍会ARP询问目标IP → 触发代理ARP(如果启用)

代理ARP

  1. 原理:当ARP请求目标跨网段的时候,网关设备收到这个ARP请求,会用自己的MAC地址返回给请求者,这就是代理ARP

    电脑发送ARP请求服务器8.8.8.8的MAC地址,路由器(网关)收到这个请求时会进行判断,由于目标8.8.8.8不属于本网段(即跨网段),此时便返回自己的接口MAC地址给PC,后续电脑访问服务器时,目标MAC直接封装为MAC254。
  2. 本质:代理ARP是一个善意的欺骗,是一个错位的映射,是为了电脑可以和外网的服务器实现通信

    从图中我们看到服务器地址的正常映射是<8.8.8.8-MAC2>,而路由器返回给电脑的,却是 <8.8.8.8-MAC254>。
  3. 在实际的网络中,代理ARP由网络中的网关设备来执行,包括路由器、多层交换机、无线路由器、防火墙等设备。并且网关即便有代理ARP的功能,也未必一定执行,需要满足两个条件:
    1. 网关已经开启代理ARP的功能
    2. 网关有目标的路由信息
    3. 假设路由器已具备全网的路由,但连接电脑的接口没有开启(或不支持)代理ARP功能,此时便造成一个尴尬的情况:电脑反复询问到8.8.8.8的MAC地址,路由器收到之后,处理流程跟正常ARP是一致的,"问自己的回复,不是问自己的丢弃"。因此,当网络通信采用代理ARP时,可能会"受制于沿途网关设备",造成网络通信故障
    4. 既然代理ARP不是一种特别流畅的实现,会"受限于别人",那我们没必要一定要使用它。甚至,这里我们需要搞清一个事实:实际网络中,无论是同网段还是跨网段通信(例如访问互联网),绝大情况下都是使用正常的ARP,而不是代理ARP。
  4. 重点
    1. 代理ARP仅仅是正常ARP的一个拓展使用,是可选项不是必选项
    2. 代理ARP由特定的使用场景,与网关或路由的设置有直接关系:当电脑没有网关/路由功能且需要跨网段进行通信的时候,就会触发代理ARP(电脑有网关或路由功能就不需要代理ARP)
    3. 正常环境下,当用户接入网络的时候,都会通过DHCP协议或手工配置的方式得到IP和网关的信息
      1. 当用户接入网络的时候,DHCP和ARP是两个紧密配合但是功能不同的协议,共同确保设备能正常通信
      2. DHCP:动态分配IP地址、子网掩码、默认网关、DNS等参数
        1. 交互的过程:设备广播DHCP Discover → DHCP Server响应Offer → 设备请求IP(Request)→ Server确认(ACK)
      3. ARP:实现通信
        1. 作用:将DHCP获取的网关地址转换为网关的MAC地址(物理寻址)
        2. 触发时机:设备首次访问外网时
        3. 交互的过程:设备广播:Who has 网关IP? → 网关回复:My MAC is XX:XX:XX → 设备缓存ARP条目
        4. 核心作用:网络层和数据链路层的翻译官
          1. 物理寻址:IP-->MAC
            1. 场景:已知网关的IP是192.168.1.1,但是网卡需要知道其MAC才能发送帧
          2. 本地通信的基石
            1. 同一子网内通信:直接通过ARP获取打印机的MAC
            2. 不同子网内的通信:PC通过ARP获取网关的MAC,通过网关转发数据
          3. ARP缓存优化
            1. 设备会缓存IP-MAC的映射,减少重复广播
            2. 缓存超时会重新发起ARP请求
      4. DHCP告诉你“网关是谁”(IP),ARP帮你找到“网关在哪”(MAC),两者如同地址簿和导航的关系。若DHCP分配了错误的网关IP,ARP将无法找到正确路径
      5. 协议作用层级核心功能与另一协议的关系
        DHCP应用层分配IP、网关等逻辑地址为ARP提供目标网关IP
        ARP网络层将IP转换为MAC物理地址依赖DHCP提供的网关IP完成寻址

ARP与代理ARP:不是互斥而是互补

  1. 当用户访问互联网的时候,使用ARP还是代理ARP?和网关/路由设置有什么关系?数据封装有什么关系?
  2. 当电脑没有网关的时候,采用代理ARP

    当电脑有网关的时候,采用ARP
    1. 电脑没有网关的时候,ARP直接询问目标IP对应的MAC地址(跨网段),采用代理ARP
    2. 电脑有网关的时候,ARP只需要询问网关IP对应的MAC地址(同网段),采用正常ARP
    3. 无论是代理ARP还是ARP,电脑最终得到的都是同一个目标MAC地址:网关MAC
  3. ARP请求的终极目标:ARP始终是通过IP找MAC,无论是否跨网段,关键在于询问的对象是谁(ARP永远在问"这个IP的MAC是谁"
    1. 普通ARP:直接问目标IP的MAC(PC发一个广播询问目标的MAC地址,目标设备单播回应自己的MAC地址)
    2. 代理ARP:问网关目标IP的MAC(跨网段的时候网关代为应答)(PC发一个广播询问目标的MAC地址,路由器启用代理ARP,用路由器的MAC应答,数据包会发往路由器,由路由器转发到目标子网)
    3. 场景ARP请求内容响应者数据最终目标
      同一子网who has [目标IP]?目标设备自身目标MAC
      跨网段+代理ARPwho has [目标IP]?路由器(代理应答)路由器MAC → 目标IP
      跨网段+无代理ARPwho has [目标IP]?无响应通信失败

参考文章
图解ARP协议(四)代理ARP:善意的欺骗 - 知乎
图解ARP协议(一) - 知乎
图解ARP协议(二)ARP攻击篇 - 知乎
图解ARP协议(三)ARP防御篇-如何揪出"内鬼"并"优雅的还手"? - 知乎
图解ARP协议(五)免费ARP:地址冲突了肿么办? - 知乎
图解ARP协议(六)RARP与IARP:被遗忘的兄弟协议 - 知乎
图解IP协议(一) IP协议原理与实践 - 知乎

    相关文章:

    代理ARP与传统ARP在网络通信中的应用及区别研究

    一些问题 路由器隔离广播域&#xff0c;每个接口/网段都是独立的广播域ARP请求是二层广播包&#xff0c;广播包没法通过路由器ARP请求没法穿越互联网到达目标主服务器 一些思考 电脑访问互联网服务器的时候&#xff0c;ARP询问的内容&#xff0c;真的是访问服务器么&#xf…...

    理解 Envoy 的架构

    理解 Envoy 的架构对于深入理解 Istio 至关重要&#xff0c;因为 Envoy 是 Istio 数据平面的核心。Envoy 是一个高性能的 C 分布式代理&#xff0c;设计为云原生应用和大规模微服务架构的网络基础。 以下是 Envoy 架构的关键组成部分和核心理念&#xff1a; 核心设计理念&…...

    使用Kotlin Flow实现Android应用的响应式编程

    在Android应用中使用Kotlin Flow实现响应式编程可以分为以下步骤&#xff0c;结合最佳实践和生命周期管理&#xff1a; 1. 添加依赖 在build.gradle中确保包含协程和生命周期相关依赖&#xff1a; dependencies {implementation("org.jetbrains.kotlinx:kotlinx-corouti…...

    【AI提示词】蝴蝶效应专家

    提示说明 一位专注于分析和优化蝴蝶效应现象的专业人士&#xff0c;擅长将微小变化转化为系统级影响的研究者。 提示词 # Role: 蝴蝶效应专家## Profile - language: 中文 - description: 一位专注于分析和优化蝴蝶效应现象的专业人士&#xff0c;擅长将微小变化转化为系统级…...

    StreamRL:弹性、可扩展、异构的RLHF架构

    StreamRL&#xff1a;弹性、可扩展、异构的RLHF架构 大语言模型&#xff08;LLMs&#xff09;的强化学习&#xff08;RL&#xff09;训练正处于快速发展阶段&#xff0c;但现有架构存在诸多问题。本文介绍的StreamRL框架为解决这些难题而来&#xff0c;它通过独特设计提升了训…...

    架构进阶:大型制造业企业数据架构顶层设计总体规划方案【附全文阅读】

    本文概述了一个大型企业数据架构设计的总体规划方案,针对当前数据架构与管理中存在的诸多问题,如缺乏统一数据模型、数据分析应用体系不健全、主数据管理体系不完善、数据治理体系缺失等,提出了明确的改进目标与实施路径。 数据架构设计思路聚焦于明确数据分布和流向…...

    前端指南——项目代码结构解析(React为例)

    文件结构 文件项目 ├── doc │ ├── technology.md ├── node_modules ├── public ├── shell ├── src │ ├── auto-generated │ │ ├── apis │ │ ├── models │ ├── components │ │ ├── 组件A │ │ ├── 组件B …...

    Redis-数据一致性问题与解决方案

    Redis-数据一致性问题与解决方案 引言 Redis 是一个高性能的内存数据库&#xff0c;广泛应用于缓存、会话存储、实时分析等场景。作为一个 NoSQL 数据库&#xff0c;它的高性能和丰富的数据结构使其成为现代微服务架构中不可或缺的组件。然而&#xff0c;在高并发的环境下&am…...

    【数据结构】算法的复杂度

    前言&#xff1a;经过了C语言的学习&#xff0c;紧接着就步入到数据结构的学习了。在C语言阶段我们在写大多数的oj题的时候会遇到一些问题&#xff0c;就是算法的效率低使用的时间较多&#xff0c;占用的空间也多&#xff0c;数据结构就是来优化算法的。 文章目录 一&#xff…...

    Leetcode刷题 由浅入深之字符串——541. 反转字符串Ⅱ

    目录 &#xff08;一&#xff09;反转字符串Ⅱ的C实现 写法一&#xff08;s.begin&#xff08;&#xff09;遍历字符&#xff09; &#xff08;二&#xff09;复杂度分析 时间复杂度 空间复杂度 &#xff08;三&#xff09;总结 【题目链接】541. 反转字符串Ⅱ - 力扣&am…...

    制造单元智能化改造与集成技术平台成套实训设备

    制造单元智能化改造与集成技术平台成套实训设备 一、概述&#xff1a; 本设备以汽车行业的轮毂为产品对象&#xff0c;实现了仓库取料、制造加工、打磨抛光、检测识别、分拣入位等生产工艺环节&#xff0c;以未来智能制造工厂的定位和需求为参考&#xff0c;通过工业以太网完成…...

    Vscode 顶部Menu(菜单)栏消失如何恢复

    Vscode 顶部Menu(菜单)栏消失如何恢复 https://blog.csdn.net/m0_62964247/article/details/135759655 Vscode 顶部Menu(菜单)栏消失如何恢复&#xff1f; 首先按一下 Alt按键&#xff0c;看一下是否恢复了菜单栏 如果恢复了想了解更进一步的设置&#xff0c;或是没能恢复菜单…...

    苍穹外卖--公共字段自动填充

    1.问题分析 业务表中的公共字段&#xff1a; 问题&#xff1a;代码冗余、不便于后期维护 2.实现思路 自定义注解AutoFill&#xff0c;用于标识需要进行公共字段填充的方法 自定义切面类AutoFillAspect&#xff0c;统一拦截加入了AutoFill注解的方法&#xff0c;通过反射为公…...

    行业 |四大痛点待破:“拆解”DeepSeek一体机

    繁荣DeepSeek一体机市场。 2025年开年&#xff0c;DeepSeek大模型掀起的一体机热潮席卷中国AI市场。这款一体机凭借其“开箱即用”的便利性和极低的门槛&#xff0c;吸引了大量企业关注&#xff0c;尤其是在中小企业和行业创新者中&#xff0c;更是成为了新晋“顶流”。 无论…...

    革新锅炉厂智能控制——Ethernet IP转CANopen协议网关的工业互联新方案

    锅炉厂智能化转型的必经之路 在工业4.0时代&#xff0c;锅炉厂作为能源供应的核心环节&#xff0c;正面临智能化升级的迫切需求。传统锅炉控制系统往往因协议不兼容、数据孤岛问题导致效率低下、维护成本高昂。如何实现设备间高效协同&#xff1f;如何让老旧设备融入智能网络&…...

    基于卷积神经网络和Pyqt5的猫狗识别小程序

    任务描述 猫狗分类任务&#xff08;Dogs vs Cats&#xff09;是Kaggle平台在2013年举办的一个经典计算机视觉竞赛。官方给出的Kaggle Dogs vs Cats 数据集中包括由12500张猫咪图片和12500张狗狗图片组成的训练集&#xff0c;12500张未标记照片组成的测试集。选手需要在规定时间…...

    Baklib知识中台引领服务智能跃迁

    智能架构重构服务范式 Baklib 知识中台通过全量数据融合与多模态处理能力&#xff0c;重塑企业服务底层逻辑。基于分布式架构设计&#xff0c;平台将分散在业务系统、文档库及外部渠道的非结构化数据进行智能清洗与语义解析&#xff0c;形成标准化的知识元数据池。通过四库体系…...

    【Python】超全常用 conda 命令整理

    Conda命令整理文档&#xff0c;结合官方指南与高频使用场景分类说明&#xff0c;每个命令都有对应的解释 一、环境管理 1. 创建环境 基本创建conda create --name my_env # 创建名为my_env的空环境 conda create -n my_env python3.11 # 指定Python版本 conda creat…...

    FreeRTOS菜鸟入门(十四)·事件

    目录 1. 基本概念 2. 应用场景 3. 运作机制 4. 控制块 5. 事件函数接口 5.1 事件创建函数 xEventGroupCreate() 5.2 事件删除函数 vEventGroupDelete() 5.3 事件组置位函数 xEventGroupSetBits()&#xff08;非中断&#xff09; 5.4 事件组置位函数 xEventGr…...

    setData执行后操作方法-微信小程序

    在微信小程序中&#xff0c;setData 是异步执行的&#xff0c;如果你需要在 setData 执行完毕后执行某些操作&#xff0c;可以通过以下几种方式实现&#xff1a; 1. 使用 setData 的回调函数 从基础库 2.2.3 开始&#xff0c;setData 支持传入回调函数&#xff0c;回调会在数据…...

    SpringAI特性

    一、SpringAI 顾问&#xff08;Advisors&#xff09; Spring AI 使用 Advisors机制来增强 AI 的能力&#xff0c;可以理解为一系列可插拔的拦截器&#xff0c;在调用 AI 前和调用 AI 后可以执行一些额外的操作&#xff0c;比如&#xff1a; 前置增强&#xff1a;调用 AI 前改…...

    捌拾叁- 量子傅里叶变换

    1. 前言 最近公司地震&#xff0c;现在稍微有点时间继续学习。 看了几个算法&#xff0c;都说是基于 量子傅里叶变换 &#xff0c;好&#xff0c;就是他了 Quantum Fourier。 2. 傅里叶变换 大学是学通信的&#xff0c;对于傅里叶变换还是有所理解的。其实就是基于一个 时域…...

    SSTI模版注入

    1、概念 SSTI是一种常见的Web安全漏洞&#xff0c;它允许攻击者通过注入恶意模板代码&#xff0c;使服务器在渲染模板时执行非预期的操作。 &#xff08;1&#xff09;渲染模版 至于什么是渲染模版&#xff1a;服务器端渲染模板是一种Web开发技术&#xff0c;它允许在服务器端…...

    33、前台搜索功能怎么实现?

    输入搜索的东西&#xff0c;如果为空 如果有 前端是提交表单&#xff0c;方式是 post 后端接受 调用 mybatisplus的categoryService.getById 用户在搜索框内输入关键字之后&#xff0c;执行 js 中的 load方法&#xff0c;前端提交表单&#xff0c; 后端 controller 中的loa…...

    量化解析美英协议的非对称冲击:多因子模型与波动率曲面重构

    摘要&#xff1a;基于机器学习算法对市场微观结构的实时监测&#xff0c;黄金价格在3300美元/盎司附近展开技术性反弹。本文通过多因子分析框架&#xff0c;解析美元指数上行、贸易政策突变及资产配置迁移对贵金属市场的复合影响&#xff0c;并构建基于LSTM神经网络的动态支撑位…...

    对PyTorch模块进行性能分析

    以下是针对PyTorch模块进行性能分析的完整方法与工具指南&#xff0c;结合了多种优化策略和实际应用场景&#xff1a; 一、PyTorch性能分析工具 PyTorch Profiler • 功能&#xff1a;内置的性能分析工具&#xff0c;支持捕获CPU/GPU操作、内存分配、数据形状及硬件利用率。 …...

    lvm详细笔记

    LVM简介 逻辑卷管理器&#xff0c;是Linux 系统中用于管理磁盘储存的关键技术。 LVM 则打破了磁盘分区一旦确定&#xff0c;其大小调整往往较为复杂&#xff0c;且难以灵活应对业务变化这种限制&#xff0c;它允许用户将多个物理分区组合卷组。例如&#xff0c;系统中的多个物…...

    OpenHarmony 以太网卡热插拔事件接口无效

    目录 1.背景 2.解决方案 1.背景 在OpenHarmony中调用以太网热插拔时间&#xff0c;发现热插拔没有任何回调&#xff0c;如下接口 import { ethernet } from kit.NetworkKit;ethernet.on(interfaceStateChange, (data: object) > {console.log(on interfaceSharingStateCha…...

    SPDK NVMe of RDMA 部署

    使用SPDK NVMe of RDMA 实现多NVMe设备共享 一、编译、安装spdk 1.1、下载 1.1.1 下载spdk源码 首先&#xff0c;我们需要从GitHub上克隆SPDK的源码仓库。打开终端&#xff0c;输入以下命令&#xff1a; git clone -b v22.01 https://github.com/spdk/spdk.git cd spdk1.1.2…...

    Go语言的逃逸分析是怎么进行的

    &#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...

    纯净IP,跨境账号稳定的底层逻辑

    在跨境业务快速扩张的背景下&#xff0c;越来越多的卖家、营销人、数据团队都开始使用代理IP来实现全球网络触达。然而&#xff0c;账号封禁问题始终如影随形&#xff0c;而背后的一个“隐性元凶”常常被忽视——纯净IP的缺失。本文将从实战角度出发&#xff0c;带你深入了解什…...

    编译日志:关于编译opencv带有ffmpeg视频解码支持的若干办法

    编译日志&#xff1a;关于编译opencv带有ffmpeg视频解码支持的若干办法 前言 ​ 笔者这里是封装了简单的OpenCV视频播放抽象&#xff0c;然后却发现移植到Ubuntu和开发板上都罢工的事情&#xff0c;原来是Windows平台下我们是默认下载了ffmpeg的库的&#xff0c;但是在泛Linu…...

    djinn: 3靶场渗透

    djinn: 3 来自 <https://www.vulnhub.com/entry/djinn-3,492/> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.182&#xff0c;靶场IP192.168.23.243 3&#xff0…...

    WHAT - 简单服务发现

    文章目录 简单理解举个例子简单服务发现方式1. 静态配置&#xff08;最简单&#xff0c;但不灵活&#xff09;2. DNS 发现3. 使用服务注册中心&#xff08;稍高级&#xff09; 总结 “简单服务发现”&#xff08;Simple Service Discovery&#xff09;通常指的是一种让系统中的…...

    auto推导类型原则

    auto 是 C11 引入的类型自动推导关键字&#xff0c;它允许编译器根据表达式的类型来推导变量的确切类型。虽然使用 auto 可以让代码更简洁&#xff0c;但理解它的类型推导规则非常关键&#xff0c;尤其是在涉及指针、引用、const、模板等场景时。 ✅ 一、基本推导原则 auto x …...

    44.辐射发射整改简易摸底测试方法

    辐射发射整改简易摸底测试方法 1. 正式摸底预测试2. 简易方法预测试3. 分析频谱4. 探查传播路径5. 施加措施6. 与简易方法预测试效果对比 1. 正式摸底预测试 去正式实验室做一次预测试&#xff0c;取得频谱图&#xff1b;确定超标频点和超标量&#xff08;备用&#xff09;。 …...

    初识C++:入门基础(二)

    概述&#xff1a;该篇博客主要介绍C的缺省函数、函数重载、和引用等知识。 目录 1. 缺省参数 2. 函数重载 3. 引用 3.1 引用的概念和定义 3.2 引用的特性 3.3 引用的使用 3.4 const引用 3.5 指针和引用的关系 4. nullptr 5. 小结 1. 缺省参数 缺省参数是声明或定义函…...

    我国脑机接口市场规模将破38亿元,医疗领域成关键突破口

    当人类仅凭"意念"就能操控无人机编队飞行&#xff0c;当瘫痪患者通过"脑控"重新站立行走&#xff0c;这些曾只存在于科幻电影的场景&#xff0c;如今正通过脑机接口技术变为现实。作为"十四五"规划中重点发展的前沿科技&#xff0c;我国脑机接口…...

    笔记,麦克风的灵敏度

    麦克风的“灵敏度&#xff08;Sensitivity&#xff09;”决定了它捕捉声音细节的能力。想象麦克风是一只有耳朵的生物。高灵敏度麦克风像长着“超级顺风耳”的精灵&#xff0c;能听见花瓣飘落的声音、远处树叶的沙沙声&#xff0c;甚至你心跳的微弱震动。适合录音棚里捕捉歌手的…...

    国产linux系统(银河麒麟,统信uos)使用 PageOffice 在线打开Word文件,并用前端对话框实现填空填表

    不管是政府机关、公司企业&#xff0c;还是金融行业、教育行业等单位&#xff0c;在办公过程中都经常需要填写各种文书和表格&#xff0c;比如通知、报告、登记表、计划表、申请表等。这些文书和表格往往是用Word文件制作的模板&#xff0c;比方说一个通知模板中经常会有“关于…...

    AKS 支持 Kata Container容器沙盒 -预览阶段

    您准备好提升您的云和 DevOps 技能了吗&#xff1f; &#x1f425;《云原生devops》专门为您打造&#xff0c;我们精心打造的数十篇文章库&#xff0c;这些文章涵盖了 Azure、AWS 和 DevOps 方法论的众多重要主题。无论您是希望精进专业知识的资深专业人士&#xff0c;还是渴望…...

    Ubuntu通过源码编译方式单独安装python3.12

    1、安装依赖 sudo apt-get install zlib1g sudo apt-get install zlib1g-dev sudo apt-get install openssl sudo apt-get install libssl-dev2、编译源码并安装 wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz tar -xvf Python-3.12.0.tar.xz cd Pyth…...

    【某OTA网站】phantom-token 1004

    新版1004 phantom-token 请求头中包含phantom-token 定位到 window.signature 熟悉的vmp 和xhs一样 最新环境检测点 最新检测 canvas 下的 toDataURL方法较严 过程中 会用setAttribute给canvas 设置width height 从而使toDataURL返回不同的值 如果写死toDataURL的返回值…...

    游戏引擎学习第266天:添加顶部时钟概览视图。

    简要讨论使用第三方调试工具或在多个项目中复用自己的调试工具 今天的工作主要是在提升调试界面的可用性和美观性。昨天已经整理了布局代码&#xff0c;今天的目标是继续优化调试界面&#xff0c;使其更易用。我们已经为调试工具添加了许多新功能&#xff0c;并且在实现过程中…...

    霸王茶姬微信小程序自动化签到系统完整实现解析

    霸王茶姬微信小程序自动化签到系统完整实现解析 技术栈&#xff1a;Node.js 微信小程序API MD5动态签名 一、脚本全景架构 功能模块图 #mermaid-svg-0vx5W2xo0IZWn6mH {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-s…...

    AI与自然语言处理(NLP):从BERT到GPT的演进

    AI与自然语言处理&#xff08;NLP&#xff09;&#xff1a;从BERT到GPT的演进 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 AI与自然语言处理&#xff08;NLP&#xff09;&#xff1a;从BERT到GPT的演进摘要引言…...

    TRO高能预警,Keith律所×Tane Hannah Meets版权两案王炸维权

    紧急避雷贴&#xff0c;keith律所代理Tane Hannah Meets 10个版权连发两案突袭跨境圈&#xff01;案件详情如下&#xff1a; 案件基本情况&#xff1a; 起诉时间&#xff1a;2025-5-8 案件号&#xff1a;25-cv-05079、25-cv-05088 品牌&#xff1a;Tane Meets Works 原告&…...

    在 Spring Boot 中选择合适的 HTTP 客户端

    在现代的 Spring Boot 应用程序中&#xff0c;与外部服务进行 HTTP 通信是一个常见的需求。Spring Boot 提供了多种方式来实现 HTTP 请求&#xff0c;包括 Java 的 HttpClient、Spring 的 RestTemplate、WebClient&#xff0c;以及第三方库如 Apache HttpClient。本文将详细介绍…...

    Go语言中 源文件开头的 // +build 注释的用法

    // build注释主要用于实现条件编译。借助设置不同的构建标签&#xff08;build tags&#xff09;&#xff0c;我们能够指定在特定的操作系统、架构或者其他自定义条件下才编译某个文件 1、基本规则 格式要求&#xff1a; 这种注释必须出现在文件的开头部分。注释与包声明之间至…...

    C++八股 —— map/unordered_map

    1. 底层数据结构 map —— 红黑树 随处可见的红黑树&#xff1a;原理、实现及应用场景 - 知乎 unordered_map —— 散列表 [C] 哈希表&#xff08;散列表&#xff09;详解_c哈希表-CSDN博客 2. 常见面试题 底层为红黑树的容器有哪些 mapmultimapsetmultiset 红黑树和AVL树…...