自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小哲的博客

知识改变命运,技术成就梦想。不忘初心,继续前行!

  • 博客(429)
  • 资源 (2)
  • 收藏
  • 关注

原创 【Python Web】30个Python Web开发框架介绍

收藏:30个Python Web开发框架介绍1. Bobo2. Bottle3. CherryPy4. Cyclone5. Flask6. Itty-Bitty7. Klein8. Morepath9. ObjectWeb10. Pecan11. Pyramid12. Tornado13. web.py14. Wheezy Web15. Falcon16. web2py17. Quixote18. API Star19. Twisted20. Sanic21. Japronto22. TurboGears2

2021-02-03 17:57:05 104 1

原创 【Kubernetes】菜鸟学K8S之安装Kubernetes(上)

安装Kubernetes(上)Kubernetes设计架构Kubernetes节点Kubernetes Master节点Kubernetes Node节点分层架构相关组件描述节点规划安装前准备1. 禁用SELINUX2. 禁用firewall3. 添加阿里源4. 配置主机名5. 关闭swap,注释swap分区6. 配置内核参数,将桥接的IPv4流量传递到iptables的链7.安装常用软件包8. 配置ssh免密登陆9. 更新软件包10. 同步系统时间安装Kubernetes1. 下载安装包Kubernet

2021-03-01 10:15:47 9

原创 【Python Web】Pecan学习:框架原理分析和示例

Pecan学习:基础入门WSGIPecanWSGI在正式了解Pecan之前,需要介绍WSGI的基本原理:WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范。server和application的规范在PEP 3333中有具体描述。要实现WSGI协议,必须同时实现web server和web application,当前运行在WSGI

2021-02-25 17:23:54 13

原创 【Python Web】Pecan学习:官方文档解读

Pecan官方文档解读Introduce to pecanWhat is pecan?What are its characteristics?Create the first pecan applicationRun the pecan applicationPecan configuration fileEntry to the applicationControllers and RoutingPecan’s Routing AlgorithmInteracting with the Request

2021-02-25 16:25:57 18

原创 【语音识别】Kalid安装过程详解

Kaldi安装过程详解1. Kaldi介绍2. 环境准备3. 安装Kaldi1. Kaldi介绍Kaldi 是由 C++ 编写的语音识别工具,其目的在于为语音识别研究者提供一个研究和使用的平台。语音识别,大体可分为“传统”识别方式与“端到端”识别方式,其主要差异就体现在声学模型上。“传统”方式的声学模型一般采用隐马尔可夫模型(HMM),而“端到端”方式一般采用深度神经网络(DNN)Kaldi架构如上图所示,最上面是外部的工具,包括用于线性代数库BLAS/LAPACK和OpenFst。中间是Kaldi

2021-02-23 01:27:55 30

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(13)

RabbitMQ扩展内容消息追踪1.1 Firehose1.2 rabbitmq_tracing插件负载均衡2.1 在客户端内部实现负载均衡2.2 使用HAProxy实现负载均衡2.3 使用Keepalived+HAProxy实现高可靠负载均衡2.4 使用Keepalived+LVS实现负载均衡消息追踪目的:跟踪记录消息的投递过程,协议开发人员或运维人员快速定位问题。1.1 Firehose在RabbitMQ中可以使用Firehose功能来实现消息追踪,其可以记录每一次发送或消费消息的过程,方面进行

2021-02-13 17:57:52 42

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(12)

网络分区1. 网络分区的意义2. 网络分区的判定3. 网络分区的模拟4. 网络分区的影响4.1 未配置镜像4.2 已配置镜像5. 手动处理网络分区6. 自动处理网络分区6.1 pause-minority模式6.2 pause-if-all-down模式6.3 autoheal模式6.4 挑选哪种模式1. 网络分区的意义当一个集群发生网络分区时,集群会分为两个部分或者更多,它们各自为政,互相都认为对方分区内的节点已经挂了,包括队列、交换器及绑定等元数据的创建和销毁都处于自身分区内,与其他分区无关。分区

2021-02-13 16:06:25 27

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(11)

RabbitMQ高阶RabbitMQ存储机制1.1 队列的结构1.3 惰性队列内存及磁盘告警2.1 内存告警2.2 磁盘告警流控(Flow Control)3.1 流控的原理3.2 案例:打破队列的瓶颈镜像队列镜像队列的结构补充要点RabbitMQ存储机制持久化的消息在到达队列时就被写到磁盘,如果可以,则会在内存中保存一份备份以提高性能,当内存吃紧时会从内存中清除;非持久化消息一般只保存在内存中,内存吃紧时会保存到磁盘中以节省内存空间;两种消息类型都是在RabbitMQ的“持久层”中完成。持久层是逻辑

2021-02-11 00:39:19 49

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(10)

RabbitMQ分布式部署1. Federation1.1 联邦交换器1.2 联邦队列1.3 Federation的使用2. Shovel2.1 Shovel原理2.2 Shovel的使用2.3 案例:消息堆积的治理RabbitMQ可以通过3种方式实现分布式部署:集群、Federation和Shovel。这3种方式不是互斥的,可以灵活组合来达到分布式部署的目的。1. FederationFederation插件设计的目的是使RabbitMQ在不同的Broker节点之间进行消息传递而无需建立集群,其功能

2021-02-09 18:24:07 29

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(9)

RabbitMQ运维1. 集群搭建1.1 多机多节点配置1.2 集群节点类型1.3 剔除单个节点1.4 集群节点的升级1.5 单机多节点配置2. 查看服务日志2.1 启动RabbitMQ服务2.2 关闭RabbitMQ服务2.3 建立集群2.4 其他3. 单节点故障恢复4. 集群迁移4.1元数据重建1. 集群搭建RabbitMQ集群允许消费者和生产者在RabbitMQ单个节点崩溃的情况下继续运行,它可以通过添加更多的节点来线性地扩展消息通信的吞吐量,当失去一个RabbitMQ节点时,客户端能够重新连接到

2021-02-08 22:27:30 25

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(8)

RabbitMQ配置环境变量配置文件配置项参考资料RabbitMQ提供了三种方式来定制化服务:环境变量(Environment Variables)。通过环境变量配置服务端参数,例如节点名称、RabbitMQ配置文件的地址、节点内部通信端口等配置文件(Configuration File)。通过配置文件定义服务和插件设置,例如TCP监听端口、以及其他网络相关的设置、内存限制、磁盘限制等;运行时参数和策略(Runtime Parameters and Policies)。通过运行时参数和策略定义集群

2021-02-08 11:53:18 23

原创 【Python】Python创建虚拟环境的三种方式

Python创建虚拟环境的三种方式比较Python创建虚拟环境的三种方式首先:为什么需要虚拟环境?Pipenv vs Virtualenv vs Conda1. Virtualenv2. Pipenv3. Conda参考资料Python创建虚拟环境的三种方式首先:为什么需要虚拟环境?在使用Python语言时,通过pip(pip3)来安装第三方包,但是由于pip的特性,系统中只能安装每个包的一个版本。但是在实际项目开发中,不同项目可能需要第三方包的不同版本,迫使我们需要根据实际需求不断进行更新或卸载相应

2021-02-03 19:23:56 82 1

原创 【Go语言实战】2.打包和工具链

2.打包和工具链包包名惯例main包在Go语言中,包是个非常重要的概念。其设计理念是使用包来封装不同的语义单元。包所有Go语言的程序都会组织成若干组文件,每组文件被称为一个包。这样每个包的代码都可以作为很小的复用单元,被其他项目引用。每个包都可以单独导入和使用,以便开发者可以根据自己的需要导入特定功能。所有的.go文件,除了空行和注释,都应该在第一行声明自己所属的包。每个包都在一个单独的目录里。不能把多个包放在同一个目录中,也不能把同一个包的文件分拆到多个不同目录中。这意味着,同一个目录下的所有.g

2021-01-31 14:27:11 57

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(7)

RabbitMQ管理多租户与权限用户管理Web端管理应用与集群管理应用管理集群管理服务端状态HTTP API接口管理参考资料多租户与权限**每一个RabbitMQ服务器都能创建虚拟的消息服务器,称之为虚拟主机(vhost),每一个vhost本质上是一个独立的小型RabbitMQ服务器,拥有自己独立的队列、交换器及绑定关系等,并且它拥有自己独立的权限。**vhost就像是虚拟机和物理服务器一样, 它们在各个实例间提供逻辑上的分离,为不同程序安全保密地运行数据,它既能将同一个RabbitMQ中的众多客户区分

2021-01-29 17:52:03 109

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(6)

RabbitMQ进阶(下)RPC实现持久化生产者确认事务机制发送方确认机制发送端确认模式的实现原理开启确认模式的方法三种实现方式消费者要点介绍消息分发消息顺序性弃用QueueingConsumer消息传输保障RPC实现RPC,即Remote Procedure Call,即远程过程调用,它是一种通过网络从远程计算机上请求服务,而不需要了解底层网络的技术。RPC的主要功能是让构建分布式计算更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。通俗地说就是两台服务器A,B,一个应用部署在A服务器上

2021-01-28 13:23:28 79

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(5)

RabbitMQ进阶消息何去何从?消息何去何从?在正常情况下,生产者产生并发送一条消息然后被交换器正确路由到某个队列中。但是如果一条消息不能被正确路由到某个队列时,那么这条消息该何去何从呢?RabbitMQ提供以下几个处理方案:(1)将消息返回给生产者;(2)直接将消息丢失;(3)使用备份交换器将未能被路由的消息存储起来。...

2021-01-25 13:52:38 52

原创 【语音识别】语音识别技术入门

语音识别入门什么是语音什么是语音语音是语言的声学表现形式,是人类自然的交流工具,例如语音通信、人机语音交互。相关概念有:声学Acoustics音频Audio语音Speech音频采样率、量化位数、通道数16KHZ,16bit,Mono8KHZ,8bit,Mono16KHZ,16bit,N-Channels语音编码、格式参数编码、波形编码、混合编码PCM(WAV)、MP3、SLIK…时域波形的振幅、频率频域:傅里叶分析:每个复杂的波形都可以由不同

2021-01-24 18:25:32 149 2

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(4)

RabbitMQ之客户端开发向导客户端开发:消费消息、消息确认与拒绝、关闭连接消费消息推模式拉模式两种模式优缺点对比:消费端的确认与拒绝关闭连接上文学习过客户端开发中的创建连接、发送消息等操作,这里接着学习如何消费消息、消息确认以及关闭连接等。客户端开发:消费消息、消息确认与拒绝、关闭连接消费消息在RabbitMQ中有两种消息处理的模式,一种是推模式/订阅模式/投递模式(也叫Push模式),消费者调用channel.basicConsume方法订阅队列后,由RabbitMQ主动将消息推送给订阅队列的

2021-01-20 20:59:40 53

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(3)

RabbitMQ之客户端开发向导客户端开发:建立连接,创建交换器和队列,发送消息1. 连接RabbitMQ2. 使用交换器(exchange)和队列(queue)exchangeDeclare方法详解queueDeclare方法详解queueBind方法详解exchangeBind方法详解3. 何时创建4. 发送消息RabbitMQ Java客户端使用com.rabbitmq.client作为顶级包名,关键的Class和Interface有Channel、Connection、ConnectionFact

2021-01-20 14:34:10 81

原创 【RabbitMQ】使用Docker搭建RabbitMQ主从架构环境

使用Docker搭建RabbitMQ主从架构环境具体过程如下:root@node01:~# docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.8.9-managementUnable to find image 'rabbitmq:3.8.9-management' locally3.8.9-

2021-01-19 21:38:29 75

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(2)

RabbitMQ基础理论RabbitMQ相关概念生产者和消费者队列交换器、路由键、绑定RabbitMQ整体上是一个生产者与消费者模型,主要负责接收、存储和转发消息。整体模型如下:RabbitMQ相关概念生产者和消费者Producer:生产者,创建消息,然后发布到RabbitMQ中。消息一般可以包括2个部分:消息体和标签(Label)。消息体一般称为payload。实际中,消息体一般是一个带有业务逻辑结构的数据,比如一个JSON字符串。消息的标签用来表示这条消息,比如一个交换器的名称和一个路由键

2021-01-18 17:37:58 62

原创 【Kubernetes】菜鸟学K8S之初步入门

菜鸟学K8S之初步入门Kubernetes初步入门什么是Kubernetes为什么用KubernetesKubernetes重要概念Cluster(集群)Master(主控)1. Kubernetes API Server(Kubernetes API服务器)2. Kubernetes Controller Manager(Kubernetes控制器管理器)3. Kubernetes Scheduler(Kubernetes调度器)4. EtcdNode(节点)1. Kubelet2. Kube-proxy

2021-01-16 21:24:41 132 3

原创 【Docker】Docker学习之基本管理

Docker基本管理镜像管理查找镜像下载镜像列出本地镜像删除镜像查看镜像构建镜像镜像标签管理容器管理创建容器查看容器启动容器停止容器删除容器网络管理Docker网络原理网络模式1.host模式2. container模式(容器模式)3. none模式(无模式)4. bridge模式(桥接模式)Docker容器的互连容器与外部网络的互连Docker的管理包括多个方面,例如镜像管理、容器管理、网络管理以及存储管理等。镜像管理:介绍Docker镜像的查找、下载、列出、删除以及创建等容器管理:介绍Docker

2021-01-16 15:46:09 49

原创 【RabbitMQ】消息队列中间件学习之RabbitMQ(1)

RabbitMQ简介1. MQ引言1.1 什么是MQ?MQ有哪些?不同MQ的特点2. RabbitMQ安装和简单使用参考资料1. MQ引言1.1 什么是MQ?消息队列中间件(Message Queue Middleware,简称为MQ)是指利用高效可靠的消息传输机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,它可以在分布式环境下扩展进程间的通信。生产者不断地向消息队列中生成消息,消费者不断的从队列中获取消息,因为消息的生成和消费都是异步的,而且只关心

2021-01-14 00:04:23 81

原创 【OpenStack】菜鸟学OpenStack之部署Train(13)

菜鸟学OpenStack之部署Train(13)仪表盘服务(Horizon)Horizon简介安装和配置系统要求安装和配置Horizon完成安装验证参考资料仪表盘服务(Horizon)Horizon简介OpenStack项目中的Horizon仪表盘服务是一个模块化组件,提供基于Web的图形界面,允许云系统管理员和终端用户管理各种计算资源和服务组件。Horizon仪表板所需的唯一核心服务是Keystone标识服务。可以将仪表板与其他服务(如镜像服务Glance、计算服务Nova和网络服务Neutron

2021-01-11 14:28:15 125

原创 【OpenStack】菜鸟学OpenStack之部署Train(12)

菜鸟学OpenStack之部署Train(12)Ceilometer服务集成启用块存储服务(Block Storage)计量启用镜像服务(Glance)计量启用编排服务(Heat)计量启用网络服务(Neutron)计量启用对象存储(Swift)计量准备配置对象存储以使用Telemetry启用计算服务(Nova)计量安装并配置组件配置计算使用Telemetry配置Compute以poll IPMI meters完成安装警告服务主要组件部署配置验证遇到的问题参考资料Ceilometer服务集成启用块存储服务

2021-01-10 23:48:33 147

原创 【OpenStack】菜鸟学OpenStack之部署Train(11)

菜鸟学OpenStack之部署Train(11)Telemetry数据收集服务Telemetry数据收集服务:Ceilometer计量(Ceilometer)服务介绍计量服务组件组成计量服务组件支持列表计量(Ceilometer)服务安装与配置准备安装Gnocchi启动服务参考资料Telemetry数据收集服务Telemetry数据收集服务提供以下功能:有效地轮询与OpenStack服务相关的计量数据。通过监视服务发送的通知来收集事件和计量数据。将收集的数据发布到各种目标,包括数据存储和消息队列

2021-01-10 16:48:27 87

原创 【OpenStack】菜鸟学OpenStack之部署Train(10)

菜鸟学OpenStack之部署Train(10)编排服务(Heat)Heat简介Heat安装配置安装和配置准备安装和配置Heat服务组件完成安装验证参考资料编排服务(Heat)Heat简介Heat编排服务组件提供基于模板的服务,它集成了OpenStack项目中的许多核心服务组件于一个模板中,使用这个模板可以创建许多类型的资源,如虚拟机实例,Floating IPs、卷设备、安全组和用户等。还有一些其他的高级功能,如实现虚拟机实例高可用、虚拟机实例的自动横向扩展等。这些功能使OpenStack项目适用的

2021-01-07 22:32:47 72

原创 【OpenStack】菜鸟学OpenStack之部署Train(9)

菜鸟学OpenStack之部署Train(9)对象存储(Swift)服务对象存储介绍对象存储相关组件对象存储组成结构对象存储基本原理一致性散列(Consistent Hashing)数据一致性模型环的数据结构数据模型对象存储系统架构对象存储的特点安装和配置(控制节点)准备工作安装并配置组件安装和配置(存储节点)准备安装和配置Swift对象存储组件创建,分发并初始化Ring参考资料对象存储(Swift)服务Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储服务,并于 2010 年贡献

2021-01-07 19:05:41 180

原创 【OpenStack】菜鸟学OpenStack之配置本地Yum源

菜鸟学OpenStack之配置本地Yum源CentOS 8以上附带2个存储库:BaseOS和AppStream(应用程序流)。其中BaseOS存储库由存在最小操作系统所需的必需软件包组成。 另一方面,AppStream包括其余的软件包,依赖项和数据库。OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。根据OpenStack现场搭建环境,一些电脑并不具备搭建要求,现在主要问题是Yum源的仓库进行本地化实施。本节教程主要介

2021-01-07 16:43:12 102

原创 【OpenStack】菜鸟学OpenStack之部署Train(8)

菜鸟学OpenStack之部署Train(8)块存储(Cinder)服务安装配置块存储(Cinder)服务概览安装和配置(控制节点)准备安装和配置Cinder块存储服务组件完成安装安装和配置(存储节点)准备安装并配置Cinder块存储服务组件完成安装验证Cinder服务参考资料块存储(Cinder)服务安装配置块存储(Cinder)服务概览存储服务是为了数据保存而使用的,在OpenStack项目中被多个服务组件使用,非常重要。从数据保存时间的角度区分,存储可以分为两种:临时存储和持久存储。临时存储是

2021-01-05 22:22:59 100

原创 【OpenStack】菜鸟学OpenStack之部署Train(7)

菜鸟学OpenStack之部署Train(7)本节介绍OpenStack网络服务(Neutron)组件。Neutron网络服务组件通过提供API使用户可以定义网络连接类型和IP网络地址,基于三层路由转发和NAT的负载均衡、防火墙和IPSec VPN等,提供了多种网络技术,丰富了网络功能,驱动了OpenStack云计算网络的建设。...

2021-01-04 19:06:03 168 1

原创 【Linux】多线程下载工具axel的安装和使用

多线程下载工具axel的安装和使用Axel的安装Axel命令及参数说明下载单个文件用不同的名称保存文件限制下载速度限制连接数恢复未完成的下载不显示文件下载进度替换进度条常见用法Axel是一个轻量级下载程序,它和其他加速器一样,对同一个文件建立多个连接,每个连接下载单独的文件片段以更快地完成下载。Axel 支持 HTTP、HTTPS、FTP 和 FTPS 协议。它也可以使用多个镜像站点下载单个文件,所以,Axel 可以加速下载高达 40%(大约,我个人认为)。它非常轻量级,因为它没有依赖并且使用非常少的

2021-01-04 00:00:58 157

原创 【Go语言实战】1. 快速开始一个Go程序

快速开始一个Go程序以一个示例程序为开始:程序下载地址:http://labfile.oss.aliyuncs.com/courses/834/sample.zip程序架构这个程序分成多个不同步骤,在多个不同的goroutine里运行。按照流程展示代码,从主goroutine开始,一直到执行搜索的goroutine和跟踪结果的goroutine,最后回到主goroutine。程序的项目...

2021-01-02 01:25:40 147

原创 【OpenStack】菜鸟学OpenStack之部署Train(6)

菜鸟学OpenStack之部署Train(5)

2020-12-31 00:14:55 127

原创 【OpenStack】菜鸟学OpenStack之部署Train(5)

菜鸟学OpenStack之部署Train(5)

2020-12-30 00:54:22 133

原创 【OpenStack】菜鸟学OpenStack之部署Train(4)

菜鸟学OpenStack之部署Train(4)镜像服务(Glance)概览glance-apiglance-registryDatabaseStorage repository for image files元数据定义服务安装与配置先决条件安装和配置Glance镜像服务组件遇到的问题镜像服务 (glance) 允许用户发现、注册和获取虚拟机镜像。它提供了一个 REST API,接收各种API请求,包括磁盘或服务器镜像、用户的元数据定义和Nova计算服务组件调用等。允许查询虚拟机镜像的 metadata 并

2020-12-20 23:14:19 136

原创 【Q&A】VMware Workstation 与 Device/Credential Guard 不兼容。

VMware Workstation 与 Device/Credential Guard 不兼容问题描述:解决办法:关闭hyper。问题描述:VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation。解决办法:关闭hyper。以管理员身份运行cmdbcdedit /set hypervisorlaunchtype off注意:需要重启计算机补充:

2020-12-18 13:54:28 56

原创 【OpenStack】菜鸟学OpenStack之部署Train(3)

菜鸟学OpenStack之部署Train(3)认证服务概览KeyStone身份认证服务组件中的一些概念安装和配置先决条件安装和配置组件1. 安装Keystone2. 配置Apache HTTP Server创建service entity 和API endpoint1. 先决条件2. 创建服务实体和API端点3. 创建项目、用户和角色验证操作定义OpenStack客户端环境变量脚本1. 创建脚本2. 使用脚本遇到的问题参考资料KeyStone身份认证服务组件是OpenStack项目中默认使用的身份认证管理

2020-12-16 01:33:37 286 1

原创 【OpenStack】菜鸟学OpenStack之部署Train(2)

菜鸟学OpenStack之部署Mitaka(2)基础环境准备1 安全设置规则2 主机节点网络设置基础环境准备在安装配置OpenStack各个服务组件之前,准备基础环境对于后续的安装配置至关重要。整个OpenStack环境需要仪表盘服务(Horizon)、计算服务(Nova)、身份认证服务(KeyStone)、网络服务(Neutron)、镜像服务(Glance)、块存储(Cinder)、对象存储(Swift)、计量服务(Ceilometer)、编排服务(Heat)。需要配置的所有服务组件都要运行在Lin

2020-12-14 00:47:57 183

H3C全国网络技能大赛

2014年H3C全国网络技能大赛比赛大纲,为参加比赛的同学提供参考

2014-08-05

校园网IP地址规划

学习网络必备文档,学习学习校园网IP地址规划,理解IP意义

2014-06-15

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除