HCIP-BGP实验4
搭建实验拓扑图

要求
1.全网可达
2.isp只能配置IP地址
实验开始
配置IP地址及环回
r1,r2,r9,r10配ipv4地址(以r1为例)
[Huawei]sysname r1
[r1]interface g0/0/0
[r1-GigabitEthernet0/0/0]ip address 12.1.1.1 24
[r1-GigabitEthernet0/0/0]q
[r1]interface LoopBack 0
[r1-LoopBack0]ip address 1.1.1.1 32
OSPF
r1
[r1]ospf 1 router-id 1.1.1.1
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]network 0.0.0.0 255.255.255.255
r2
[r2]ospf 1 router-id 2.2.2.2
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]network 12.1.1.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]q
[r2-ospf-1]q
[r2]ip route-static 0.0.0.0 0 29.1.1.2
[r2]ospf 1
[r2-ospf-1]default-route-advertise
[r2-ospf-1]q
[r2]acl 2000
[r2-acl-basic-2000]rule permit source any
[r2-acl-basic-2000]q
[r2]interface g0/0/1
[r2-GigabitEthernet0/0/1]nat outbound 2000
r10
[r10]ip route-static 0.0.0.0 0 91.1.1.1
在r10上ping 9.9.9.9
在r1上同样可以ping通

r1配ipv6地址
[r1]ipv6
[r1]interface g0/0/0
[r1-GigabitEthernet0/0/0]ipv6 enable
[r1-GigabitEthernet0/0/0]ipv6 address 2002:1d01:0101::1/50
[r1-GigabitEthernet0/0/0]q
[r1]interface LoopBack 0
[r1-LoopBack0]ipv6 enable
[r1-LoopBack0]ipv6 address 1::1/64
r2
[r2]ipv6
[r2]interface g0/0/0
[r2-GigabitEthernet0/0/0]ipv6 enable
[r2-GigabitEthernet0/0/0]ipv6 address 2002:1d01:0101::2/50
[r2-GigabitEthernet0/0/0]q
[r2]interface LoopBack 0
[r2-LoopBack0]ipv6 enable
[r2-LoopBack0]ipv6 address 2::2/64
r10
[r10]ipv6
[r10]interface g0/0/1
[r10-GigabitEthernet0/0/1]ipv6 enable
[r10-GigabitEthernet0/0/1]ipv6 address 2002:5b01:0102::1/50
[r10-GigabitEthernet0/0/1]q
[r10]interface LoopBack 0
[r10-LoopBack0]ipv6 enable
[r10-LoopBack0]ipv6 address 10::10/64
r11
[r11]ipv6
[r11]interface g0/0/0
[r11-GigabitEthernet0/0/0]ipv6 enable
[r11-GigabitEthernet0/0/0]ipv6 address 2002:5b01:0102::2/50
[r11-GigabitEthernet0/0/0]q
[r11]interface LoopBack 0
[r11-LoopBack0]ipv6 enable
[r11-LoopBack0]ipv6 address 11::11/64
在r2上ping 一下
在r11上ping一下

做隧道
r2
[r2]interface Tunnel 0/0/0
[r2-Tunnel0/0/0]ipv6 enable
[r2-Tunnel0/0/0]ipv6 address 2002:1d01:0101:4000::1/50
r10
[r10]interface Tunnel 0/0/0
[r10-Tunnel0/0/0]tunnel-protocol ipv6-ipv4 6to4
[r10-Tunnel0/0/0]source g0/0/0
[r10-Tunnel0/0/0]ipv6 enable
[r10-Tunnel0/0/0]ipv6 address 2002:5b01:0102:4000::1/50
做引流
r1
[r1]ipv6 route-static :: 0 2002:1d01:0101::2
r2
[r2]ipv6 route-static :: 0 Tunnel 0/0/0
r10
[r10]ipv6 route-static :: 0 Tunnel 0/0/0
[r10]interface g0/0/1
[r10-GigabitEthernet0/0/1]ripng default-route originate
RIP
r10
[r10]ripng 1
[r10-ripng-1]q
[r10]interface g0/0/1
[r10-GigabitEthernet0/0/1]ripng 1 enable
[r10-GigabitEthernet0/0/1]q
[r10]interface LoopBack 0
[r10-LoopBack0]ripng 1 enable
r11
[r11]ripng 1
[r11-ripng-1]q
[r11]interface LoopBack 0
[r11-LoopBack0]ripng 1 enable
[r11-LoopBack0]q
[r11]interface g0/0/0
[r11-GigabitEthernet0/0/0]ripng 1 enable
在r10宣告隧道
[r10]interface Tunnel 0/0/0
[r10-Tunnel0/0/0]ripng 1 enable
查看缺省
在r2上测试隧道是否通

在r1上ping r2的环回

在r2上写指向r1的静态路由
[r2]ipv6 route-static 1::1 64 2002:1D01:101::1
此时在r2上ping r1的环回

在r1上ping ,并不通

解决
由于地址划分有问题,修改如下
r10
[r10]interface LoopBack 0
[r10-LoopBack0]undo ipv6 address
[r10-LoopBack0]ipv6 address 2002:5b01:0102:8000::1/50
[r10-LoopBack0]ripng 1 enable
在ping一次
继续配置ipv6地址及环回地址
r3
[r3]ipv6
[r3]interface g0/0/0
[r3-GigabitEthernet0/0/0]ipv6 enable
[r3-GigabitEthernet0/0/0]ipv6 address 2002:1d01:0101:4::2/64
[r3-GigabitEthernet0/0/0]q
[r3]interface LoopBack 0
[r3-LoopBack0]ipv6 enable
[r3-LoopBack0]ipv6 address 3::3/64
[r3-LoopBack0]q
[r3]interface g0/0/1
[r3-GigabitEthernet0/0/1]ipv6 enable
[r3-GigabitEthernet0/0/1]ipv6 address 2002:1d01:0101:5::1/64
r4
[r4]ipv6
[r4]interface g0/0/0
[r4-GigabitEthernet0/0/0]ipv6
[r4]interface g0/0/0
[r4-GigabitEthernet0/0/0]ipv6 enable
[r4-GigabitEthernet0/0/0]ipv6 address 2002:1d01:0101:5::2/64
[r4-GigabitEthernet0/0/0]q
[r4]interface LoopBack 0
[r4-LoopBack0]ipv6 enable
[r4-LoopBack0]ipv6 address 4::4/64
[r4-LoopBack0]q
[r4]interface g0/0/1
[r4-GigabitEthernet0/0/1]ipv6 enable
[r4-GigabitEthernet0/0/1]ipv6 address 2002:1d01:0101:6::1/64
r5
[r5]interface LoopBack 0
[r5-LoopBack0]ipv6 enable
[r5-LoopBack0]ipv6 address 5::5/64
[r5-LoopBack0]q
[r5]interface g0/0/0
[r5-GigabitEthernet0/0/0]ipv6 enable
[r5-GigabitEthernet0/0/0]ipv6 address 2002:1d01:0101:6::2/64
[r5-GigabitEthernet0/0/0]q
[r5]interface g0/0/1
[r5-GigabitEthernet0/0/1]ipv6 enable
[r5-GigabitEthernet0/0/1]ipv6 address 2002:1d01:0101:7::1/64
r6
[r6]interface g0/0/0
[r6-GigabitEthernet0/0/0]ipv6 enable
[r6-GigabitEthernet0/0/0]ipv6 address 2002:1d01:0101:7::2/64
[r6-GigabitEthernet0/0/0]q
[r6]interface LoopBack 0
[r6-LoopBack0]ipv6 enable
[r6-LoopBack0]ipv6 address 6::6/64
[r6-LoopBack0]q
[r6]interface g0/0/1
[r6-GigabitEthernet0/0/1]ipv6 enable
[r6-GigabitEthernet0/0/1]ipv6 address 2002:1d01:0101:8::1/64
r7
[r7]ipv6
[r7]interface LoopBack 0
[r7-LoopBack0]ipv6 enable
[r7-LoopBack0]ipv6 address 7::7/64
[r7-LoopBack0]q
[r7]interface g0/0/0
[r7-GigabitEthernet0/0/0]ipv6 enable
[r7-GigabitEthernet0/0/0]ipv6 address 2002:1d01:0101:8::2/64
[r7-GigabitEthernet0/0/0]q
[r7]interface g0/0/1
[r7-GigabitEthernet0/0/1]ipv6 enable
[r7-GigabitEthernet0/0/1]ipv6 address 2002:1d01:0101:9::1/64
r8
[r8]ipv6
[r8]interface LoopBack 0
[r8-LoopBack0]ipv6 enable
[r8-LoopBack0]ipv6 address 8::8/64
[r8-LoopBack0]q
[r8]interface g0/0/0
[r8-GigabitEthernet0/0/0]ipv6 enable
[r8-GigabitEthernet0/0/0]ipv6 address 2002:1d01:0101:9::2/64
OSPF
r3
[r3]ospfv3 1
[r3-ospfv3-1]router-id 3.3.3.3
[r3-ospfv3-1]q
[r3]interface g0/0/1
[r3-GigabitEthernet0/0/1]ospfv3 1 area 0
[r3-GigabitEthernet0/0/1]q
[r3]interface LoopBack 0
[r3-LoopBack0]ospfv3 1 area 0
r4
[r4]ospfv3 1
[r4-ospfv3-1]router-id 4.4.4.4
[r4-ospfv3-1]q
[r4]interface LoopBack 0
[r4-LoopBack0]ospfv3 1 area 0
[r4-LoopBack0]q
[r4]interface g0/0/0
[r4-GigabitEthernet0/0/0]ospfv3 1 area 0
[r4-GigabitEthernet0/0/0]q
[r4]interface g0/0/1
[r4-GigabitEthernet0/0/1]ospfv3 1 area 0
r5
[r5]ospfv3 1
[r5-ospfv3-1]router-id 5.5.5.5
[r5-ospfv3-1]q
[r5]interface LoopBack 0
[r5-LoopBack0]ospfv3 1 area 0
[r5-LoopBack0]q
[r5]interface g0/0/0
[r5-GigabitEthernet0/0/0]ospfv3 1 area 0
[r5-GigabitEthernet0/0/0]q
[r5]interface g0/0/1
[r5-GigabitEthernet0/0/1]ospfv3 1 area 0
r6
[r6]ospfv3 1
[r6-ospfv3-1]router-id 6.6.6.6
[r6-ospfv3-1]q
[r6]interface g0/0/0
[r6-GigabitEthernet0/0/0]ospfv3 1 area 0
[r6-GigabitEthernet0/0/0]q
[r6]interface LoopBack 0
[r6-LoopBack0]ospfv3 1 area 0
RIP
r7
[r7]ripng 1
[r7-ripng-1]q
[r7]interface g0/0/1
[r7-GigabitEthernet0/0/1]ripng 1 enable
[r7-GigabitEthernet0/0/1]q
[r7]interface LoopBack 0
[r7-LoopBack0]ripng 1 enable
r8
[r8]ripng 1
[r8-ripng-1]q
[r8]interface LoopBack 0
[r8-LoopBack0]ripng 1 enable
[r8-LoopBack0]q
[r8]interface g0/0/0
[r8-GigabitEthernet0/0/0]ripng 1 enable
在r8上ping

建立BGP
r3
[r3]bgp 64512
[r3-bgp]confederation id 100
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer 4::4 as-number 64512
[r3-bgp]peer 4::4 connect-interface lo 0
[r3-bgp]ipv6-family
[r3-bgp-af-ipv6]peer 4::4 enable
r4
[r4]bgp 64512
[r4-bgp]confederation id 100
[r4-bgp]router-id 4.4.4.4
[r4-bgp]peer 3::3 as-number 64512
[r4-bgp]peer 3::3 connect-interface lo 0
[r4-bgp]peer 5::5 as-number 64512
[r4-bgp]peer 5::5 connect-interface lo 0
[r4-bgp]ipv6-family
[r4-bgp-af-ipv6]peer 3::3 enable
[r4-bgp-af-ipv6]peer 3::3 reflect-client
[r4-bgp-af-ipv6]peer 5::5 enable
[r4-bgp-af-ipv6]peer 5::5 reflect-clien
r5
[r5]bgp 64512
[r5-bgp]confederation id 100
[r5-bgp]confederation peer-as 64513
[r5-bgp]router-id 5.5.5.5
[r5-bgp]peer 4::4 as-number 64512
[r5-bgp]peer 4::4 connect-interface lo 0
[r5-bgp]peer 6::6 as-number 64513
[r5-bgp]peer 6::6 connect-interface lo 0
[r5-bgp]peer 6::6 ebgp-max-hop
[r5-bgp]ipv6-family
[r5-bgp-af-ipv6]peer 4::4 enable
[r5-bgp-af-ipv6]peer 4::4 next-hop-local
[r5-bgp-af-ipv6]peer 6::6 enable
r6
[r6]bgp 64513
[r6-bgp]router-id 6.6.6.6
[r6-bgp]confederation id 100
[r6-bgp]confederation peer-as 64512
[r6-bgp]peer 5::5 as-number 64512
[r6-bgp]peer 5::5 connect-interface lo 0
[r6-bgp]peer 5::5 ebgp-max-hop
[r6-bgp]peer 2002:1D01:101:9::1 as-number 101
[r6-bgp]ipv6-family
[r6-bgp-af-ipv6]peer 5::5 enable
[r6-bgp-af-ipv6]peer 2002:1D01:101:9::1 enable
[r6-bgp]peer 2002:1D01:101:8::2 as-number 101
[r6-bgp]ipv6-family
[r6-bgp-af-ipv6]peer 2002:1D01:101:8::2 enable
r7
[r7]bgp 101
[r7-bgp]router-id 7.7.7.7
[r7-bgp]peer 2002:1D01:101:8::1 as-number 100
[r7-bgp]peer 8::8 as-number 101
[r7-bgp]peer 8::8 connect-interface lo 0
[r7-bgp]ipv6-family
[r7-bgp-af-ipv6]peer 8::8 enable
[r7-bgp-af-ipv6]peer 8::8 next-hop-local
[r7-bgp-af-ipv6]peer 2002:1D01:101:8::1 enable
r8
[r8]bgp 101
[r8-bgp]router-id 8.8.8.8
[r8-bgp]peer 7::7 as-number 101
[r8-bgp]peer 7::7 connect-interface lo 0
[r8-bgp]ipv6-family
[r8-bgp-af-ipv6]peer 7::7 enable
重发布
r7
[r7-bgp]ipv6-family
[r7-bgp-af-ipv6]import-route ripng 1
r6
[r6-bgp]ipv6-family
[r6-bgp-af-ipv6]import-route ospfv3 1
以上就是基本操作了
相关文章:
HCIP-BGP实验4
搭建实验拓扑图 要求 1.全网可达 2.isp只能配置IP地址 实验开始 配置IP地址及环回 r1,r2,r9,r10配ipv4地址(以r1为例) [Huawei]sysname r1 [r1]interface g0/0/0 [r1-GigabitEthernet0/0/0]ip address 12.1.1.1 24 [r1-GigabitEthernet0/0/0]q [r1]interface LoopBack 0…...
数据挖掘笔记1
课程:清华大学-数据挖掘:理论与算法(国家级精品课)_哔哩哔哩_bilibili 一、Learning Resources 二、Data 数据是最底层的一种表现形式。数据具有连续性。从存储上来讲,数据分为逻辑上的和物理层的。大数据࿱…...
Spring RabbitMQ那些事(3-消息可靠传输和订阅)
目录 一、序言二、生产者确保消息发送成功1、为什么需要Publisher Confirms2、哪些消息会被确认处理成功 三、消费者保证消息被处理四、Spring RabbitMQ支持代码示例1、 application.yml2、RabbigtMQ配置3、可靠生产者配置4、可靠消费者配置5、测试用例 一、序言 在有些业务场…...
揭秘 Kafka 高性能之谜:一文读懂背后的设计精粹与技术实现
Kafka在性能方面有着显著的优势,这也使得Kafka的应用非常广泛,那kakfa的性能为何如此优异呢?本文将带你探寻kafka高性能之谜。 kafka的高性能概括起来有如下几点:顺序写入磁盘与I/O优化、批量处理、页缓存、零拷贝技术、分区并行处…...
canvas绘制美国国旗(USA Flag)
查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…...
Python中的`__all__`魔法函数使用详解
概要 Python是一门灵活而强大的编程语言,提供了各种机制来控制模块的导入和访问。其中,__all__魔法函数是一种用于限制模块导入的机制,可以明确指定哪些变量、函数或类可以被导入。本文将深入探讨__all__的作用、用法以及示例,以…...
Studio One 6 mac 6.5.2 激活版 数字音乐编曲创作
PreSonus Studio One是PreSonus出品的一款功能强大的音乐创作软件。主要为用户提供音乐创作、录音、编辑、制作等功能。它可以让你创造音乐,无限的轨道,无限的MIDI和乐器轨道,虚拟乐器和效果通道,这些都是强大和完美的。 软件下载…...
GitHub图床TyporaPicGo相关配置
本文作者: slience_me 文章目录 GitHub图床&Typora&PicGo相关配置1. Github配置2. picGo配置3. Typora配置 GitHub图床&Typora&PicGo相关配置 关于Typora旧版的百度网盘下载路径 链接:https://pan.baidu.com/s/12mq-dMqWnRRoreGo4MTbKg?…...
FireAlpaca:轻量级、免费的Mac/Win绘图软件,让你的创意如火燃烧!
FireAlpaca是一款轻量级、免费的绘图软件,适用于Mac和Win系统,让你的创作过程更加快捷、简便。无论是绘制漫画、插图、设计作品还是进行简单的图片编辑,FireAlpaca都能满足你的需求。 首先,FireAlpaca具有直观友好的用户界面&…...
用 Python 制作可视化 GUI 界面,一键实现自动分类管理文件!
经常杂乱无章的文件夹会让我们找不到所想要的文件,因此小编特意制作了一个可视化GUI界面,通过输入路径一键点击实现文件分门别类的归档。 不同的文件后缀归类为不同的类别 我们先罗列一下大致有几类文件,根据文件的后缀来设定,大…...
【STM32】USB程序烧录需要重新上电 软件复位方法
文章目录 一、问题二、解决思路2.1 直接插拔USB2.2 给芯片复位 三、解决方法3.1 别人的解决方法3.2 在下载界面进行设置 一、问题 最近学习STM32的USB功能,主要是想要使用虚拟串口功能(VCP),发现每次烧录之后都需要重新上电才可以…...
Java数据结构与算法:图算法之深度优先搜索(DFS)
Java数据结构与算法:图算法之深度优先搜索(DFS) 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,一个热爱编程的程序猿。今天,让我们一起探索图算法中的深度优先搜索(DFS&…...
SpringBoot整合QQ邮箱发送验证码
一、QQ开启SMTP 打开QQ邮箱,点击设置,进入账号,往下滑后,看见服务状态后,点击管理服务 进入管理服务后,打开服务,然后获取授权码 二 、导入依赖 <!-- 邮箱--><dependency>&…...
云虚拟主机怎么修改代码?如何修改部署在虚拟主机的网站代码?
很多站长成功创建网站之后,或多或少都会对网站代码进行适当修改。比如boke112百科使用YIA主题后,也根据自己的需要进行了多个方面的小修改。 那么如果网站是部署在虚拟主机上的,那么应该如何修改这些网站代码呢?其实,…...
电脑加固态硬盘有什么好处
电脑加固态硬盘有很多好处,以下是一些主要的优点: 1. 启动速度更快:固态硬盘(SSD)的启动速度比传统机械硬盘(HDD)快得多。这是因为固态硬盘没有旋转部件,而传统硬盘的读写头需要不断…...
LabVIEW电火花线切割放电点位置
介绍了一个电火花线切割放电点位置分布评价系统,特别是在系统组成、硬件选择和LabVIEW软件应用方面。 本系统由两个主要部分组成:硬件和软件。硬件部分包括电流传感器、高速数据采集卡、开关电源、电阻和导线。软件部分则由LabVIEW编程环境构成…...
信通院发布《全球数字经济白皮书 (2023年)》解析
文章目录 前言一、白皮书目录二、白皮书核心观点(一)主要国家优化政策布局,数字经济政策导向更加明晰、体系更加完善(二) 数字经济加速构筑经济复苏关键支撑(三)全球数字经济多极化趋势进一步深化(四)数字经济重点领域发展成效显著三、白皮书的主要内容前言 当前,世…...
Spring5系列学习文章分享---第三篇(AOP概念+原理+动态代理+术语+Aspect+操作案例(注解与配置方式))
目录 AOP概念AOP底层原理AOP(JDK动态代理)使用 JDK 动态代理,使用 Proxy 类里面的方法创建代理对象**编写** **JDK** 动态代理代码 AOP(术语)AOP操作(准备工作)**AOP** **操作(**AspectJ注解)**AOP** **操作(**AspectJ…...
BL0942 内置时钟免校准计量芯片 用于智能家居领域 上海贝岭 低成本 使用指南
BL0939是上海贝岭股份有限公司开发的一款用于智能家居领域进行电能测量的专用芯片,支持两路测量,可同时进行计量和漏电故障检测,漏电检测电流可设,响应时间快,具有体积小,外围电路简单,成本低廉…...
【算法专题】动态规划之路径问题
动态规划2.0 动态规划 - - - 路径问题1. 不同路径2. 不同路径Ⅱ3. 珠宝的最高价值4. 下降路径最小和5. 最小路径和6. 地下城游戏 动态规划 - - - 路径问题 1. 不同路径 题目链接 -> Leetcode -62.不同路径 Leetcode -62.不同路径 题目:一个机器人位于一个 m …...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
C++ 类基础:封装、继承、多态与多线程模板实现
前言 C 是一门强大的面向对象编程语言,而类(Class)作为其核心特性之一,是理解和使用 C 的关键。本文将深入探讨 C 类的基本特性,包括封装、继承和多态,同时讨论类中的权限控制,并展示如何使用类…...
第22节 Node.js JXcore 打包
Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本,基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...
react-pdf(pdfjs-dist)如何兼容老浏览器(chrome 49)
之前都是使用react-pdf来渲染pdf文件,这次有个需求是要兼容xp环境,xp上chrome最高支持到49,虽然说iframe或者embed都可以实现预览pdf,但为了后续的定制化需求,还是需要使用js库来渲染。 chrome 49测试环境 能用的测试…...

