自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (2)
  • 收藏
  • 关注

原创 玩转OpenVswitch(一):端口与网桥

一、准备工作操作系统:ubuntu 18.04docker: 18.06.1-ce要想在自己笔记本上进行较为复杂的网络拓扑模拟,除了借助ovs,还需要有docker这个神器,docker安装就不赘述了,贴个链接:https://docs.docker.com/install/linux/docker-ce/debian/#install-docker-ce二、基本操作1、网桥的增、删、...

2018-10-24 18:15:48 6694

原创 玩转OpenVswitch 简介

一、OVS简介Openvswitch是一个优秀的开源软件交换机,支持主流的交换机功能,比如二层交换、网络隔离、QoS、流量监控等,而其最大的特点就是支持openflow,openflow定义了灵活的数据包处理规范。为用户提供L2-L7包处理能力。OVS支持多种Linux虚拟化技术,包括Xen、KVM以及VirtualBox。此外,OVS支持硬件交换机。OVS支持丰富的特性,如下:本教程主要就...

2018-10-23 16:56:47 871

原创 归并排序(迭代法)

归并排序一、思路(自下而上迭代)4 9 2 7 11、以区间大小sz=1划分数组,即在长度为1的区间内进行merge排序。4|9|2|7|12、sz*2,继续上述过程,注意:最后一个元素只有一个,不过没关系,__merge2支持这样的操作,只要传入正确的left,mid,right4 9|2 7|1 3、设定边界条件,sz < len(list)+1, 同时由于数组下标用...

2018-10-10 18:14:51 2154 1

原创 归并排序的实现及其优化(递归法)

归并排序一、思路(递归)list = [a,b,c,d]1、 递归过程1、数组一分为2,list1 = [a,b] list2 = [c,d]2、先确立递归项:分别对list1/list2做归并排序,此时可以假设左右子数组已经有序。3、执行merge子过程,将list1/list2合并并使之有序。3、在程序首部添加基准条件:当前候选数组长度为1,直接return,停止向下递归。约...

2018-10-08 17:21:51 604

原创 冒泡排序及其优化

冒泡排序一、思路1、在数组[0,n)上2、从i=0开始,不断比较list[i]与list[i+1],顺序的话不做调整;逆序的话交换二者位置。3、i+14、当i = n-2时,1次遍历结束,最大值到了正确位置5、在剩余数组中继续进行上述遍历过程二、实现嵌套代码编写过程中循环体,先用pass占位,减小思维复杂度from sort_helper import test_sort,r...

2018-10-07 18:58:17 196

原创 选择排序及其优化

选择排序复杂度:O(n**2)一、思路index 0 1 2 3 4 ... n-1 nvalue 3 1 2 5 4 ... 8思考过程:1、在整个数组[0,n)内寻找最小值1,将其与list[0]交换位置:1 3 2 5 4 8,此时index=0的位置已排序完成2、在[1,n)内寻找最小值,将最小值与list[1]交换位置,此时index=1的位置排序完成3、迭代下去,...

2018-10-07 01:33:57 202

原创 插入排序及其优化

插入排序复杂度O(n**2),用笔模拟过程可轻松得出一、思路index 0 1 2 3 4 5value 4 3 2 6 4 81、选定起始指针index=0,此时已排好顺序的子数组长度为1(就是list[0]==4)2、指针后移,候选元素变为list[1]==3,将该元素不断向左交换到某个位置,使得list[0]与list[1]组成的子数组有序3、指针继续后移,直到抵达数组尾,向...

2018-10-07 01:33:14 555

原创 列表的实现与应用

抽象数据结构listpython内置实现了list;但list是一种通用数据结构,类似于c++中的vector下面使用链表来实现list;python内置list使用数组(array.Array模块)来实现list的数据结构和操作方法如下:一、实现(基于链表)由于实现方式不同,该实现方式的各种操作时间复杂度不同于内置list方法1:内置list(基于数组实现)方法2:基于链表...

2018-10-06 18:41:23 732

原创 双端队列的实现与应用

抽象数据类型dequeue一、实现方法1from collections import dequeue方法2基于listclass Dequeue(): def __init__(self): self.items = [] def addFront(self, item): """右侧为front""" self.it

2018-10-06 11:55:33 1760 1

原创 队列的实现与应用

抽象数据类型queue的定义实现了以下数据结构与操作方法的数据类型称为queue一、队列的python实现方法一:标准库from queue import Queue基于list实现class Queue(): def __init__(self): self.items = [] def enqueue(self, item): #左边为rear,右边为fron...

2018-10-06 00:49:59 386

原创 栈的实现与应用

一、栈的实现方法一:就使用list即可先进后出方法二:定义Stack,抽象出栈class Stack: #栈的python实现 def __init__(self): self.items = [] def push(self, item): #append操作O(1) self.items.append(item) def pop(self): re...

2018-10-05 22:15:09 337

原创 Python内置数据结构及其复杂度

为了使用python实现复杂数据结构与算法,需要借助python内置的基础和数据结构,主要是list和dict,明白这两种数据结构各操作的复杂度对于问题求解以及计算复杂度有着至关重要的作用。一、list1、内部使用数组实现2、缺陷:在头部删除、插入元素复杂度为O(n),这种情况下,推荐使用collections.deque二、dict...

2018-10-05 22:13:59 568

原创 玩转OpenVswitch:简介

一、OVS简介Openvswitch是一个优秀的开源软件交换机,支持主流的交换机功能,比如二层交换、网络隔离、QoS、流量监控等,而其最大的特点就是支持openflow,openflow定义了灵活的数据包处理规范。为用户提供L2-L7包处理能力。OVS支持多种Linux虚拟化技术,包括Xen、KVM以及VirtualBox。此外,OVS支持硬件交换机。OVS支持丰富的特性,如下:本教程主要就...

2018-09-28 16:07:39 19159 2

原创 每天5分钟玩转python3算法:选择排序

alg2:选择排序法1、运行时间O(n*2)> 单次查找最小/大元素耗时O(n),排出一个有序列表需要进行n次操作,平均耗时O(n*n)==O(n*2)2、使用场景可运用于无序列表,但不是最优解3、代码实现def search_min(array): """查找列表中的最小数""" min_index = 0 min_num = ar...

2018-08-27 14:15:51 310

原创 2018个人写作计划~

入职已经一年了,工作领域涉及到不少计算机网络以及SDN方面的知识,经过一年的摸索,一个大概的知识脉络慢慢浮现出来,所以准备将所学整理出来,前期先整理以下三个系列,分别涉及到虚拟交换机OVS、虚拟路由器VYOS、以及SDN控制器北向接口三个方面。时间珍贵,不求事无巨细,但求能够让初学者快速入门。系列一:openvswitch系列:1、玩转OpenVswitch(一):端口与网桥 2、玩...

2018-08-23 13:36:58 327

转载 最常用git命令汇总(参考列表)

1、git log 查询commit(快照)记录2、git reflog 查询commit命令操作记录;可以查询历史commit id3、git checkout – file 使用本地版本库中的文件替换工作区文件,即丢弃工作区的修改4、git reset HEAD file 将文件从缓存区退回工作区5、git rm file 删除版本库中的文件;配合git commit才能生效...

2018-08-19 14:40:12 417

原创 python3高级语法:__slots__属性、property装饰器、上下文管理协议、__new__方法

#practice29:派生内置不可变类型并修改其实例化行为(以tuple为例) __new__() is intended mainly to allow subclasses of immutable types (like int, str, or tuple) to customize instance creation. __init__()Called after...

2018-08-14 22:00:54 285

原创 完美解决Flask-Migrate使用SQLite生成自动迁移脚本的Bug

一、问题描述flask-migrate插件是对Alembic的简单封装,当程序使用SQLite数据库作为backend的时候,使用 flask migrate命令生成自动迁移脚本,使用flask upgrade命令进行数据库更新,会出现以下问题:1、op.alter_column、op.alter_table会报错,因为SQlite不支持替换alter column等操作。2、对于co...

2018-08-14 14:06:20 1874

原创 ubuntu18.04安装pycharm专业版

安装的pycharm版本:2017.4操作系统:ubuntu18.04 LTS步骤1:在官网下载安装包https://www.jetbrains.com/pycharm/download/#section=linux下载文件位于~/Downloads下 选择对应版本步骤2:解压到文件夹/opt,该文件夹内安装的程序都是all in one,便于删除程...

2018-08-08 13:32:31 11615 1

原创 python3装饰器的高级使用

#practice26:缓存与装饰器(递归子问题)对于需要重复计算子问题的情况,可以使用缓存,缓存实现有两种方式:1.在函数内定义某种数据结构存储数据 2.使用装饰器(闭包结构) 菲波那切数列为:1,1,2,3,5,8,13;即从第三项开始,每一项为前两项之和。以菲波那切数列为例1、一般的实现方式为:#求第n项的斐波那契数,从0开始def fibonacci(n):...

2018-07-27 23:31:46 682

原创 每天5分钟玩转python3算法:二分查找法

从今天开始,博主准备开始一段常见算法的学习,每天早上用半小时写一个算法,并以博客的形式展现出来,算法实现使用Python3,希望坚持下去^_^alg1:二分查找法1、运行时间 二分查找相比于依次查找,查询速度提升明显: + 依次查找:O(n) + 二分查找:O(logn) n表示候选数的数目;O(logn)实际代表找到目标数需要的查询次数;实际上查询次数可以大概代表运行时间...

2018-07-09 18:04:46 618

原创 广告终结者:使用AdBlock Plus屏蔽百度、CSDN广告

讲道理,百度、csdn那些广告弹窗有时候真的让人恶心,这时候必须要祭出广告终结者:AdBlock Plus!!! 一般设置方法: 1、chrome浏览器->更多工具->扩展程序 2、搜索AdBlock Plus,点击安装(可能要翻墙) 3、设置该插件,取消勾选“允许可接受广告”经过上述几步,我已经可以实现所有广告屏蔽;但如果你还未能屏蔽csdn的广告,参考以下步骤: ...

2018-07-07 13:55:53 8545 2

原创 计算机网络命令与原理--实操

传统网络学习1一、Traceroute命令命令格式traceroute [-qm] host q:给每一hop发送的ICMP包数目 -m:总共希望探测的路由数原理分析流程主机30.0.1.9向目标主机8.102发起UDP请求,目的端口号从33434递增,同时TTL值也递赠红色标记处为三条ICMP报错信息,第一条报错如下:...

2018-07-06 10:36:41 2377

原创 python3练习题:并发编程(21-25)

#practice21:多线程线程的定义方法一:直接Thread()构造方法二:构造Thread的子类#多线程的使用from urllib.request import urlretrieveimport csvfrom xml.etree.ElementTree import ElementTree,Elementfrom threading import...

2018-07-04 11:10:58 1666

原创 python3练习题:11-20

practice11: excel读写(xlsx文件)1、 excel读excel内容import xlrd#不可以使用~来代替/home/openlabbook = xlrd.open_workbook('/home/openlab/Desktop/test.xls')#一个book含有两张sheet,可以看到返回了两个sheet objectprint(book.sh...

2018-06-19 17:01:00 2809

原创 sublime3(anaconda) 无法自动补全第三方模块

解决方案: 1. 安装anoaconda插件(略)找到python3的路径import sysprint(sys.executable) 我这里是/usr/bin/python3修改preference->package seetings->anaconda->settings user{ "python_interpreter&amp

2018-06-12 15:43:03 3573 1

原创 python3练习题:1-10

#practice1:在字典、列表、集合中按条件筛选数据列表解析#如何在列表、字典、集合中按条件筛选数据from random import randintfrom timeit import timeit#因为for提取的变量在randint函数中未使用,所以用_,而非一个变量名a = [randint(-10,10) for _ in range(10)]print(...

2018-06-11 09:33:36 5657

原创 ubuntu18.04(python3.6)安装pip3报错:ImportError: cannot import name 'sysconfig'

错误描述启动pip3时报错:Traceback (most recent call last): File "/usr/bin/pip3", line 9, in <module> from pip import main File "/usr/lib/python3/dist-packages/pip/__init__.py", line 14, in &...

2018-06-03 19:04:03 22389 1

原创 python进阶:switch语句、推导式与None类型

一、python实现switch语句简单示例适合一般情形的示例二、推导式:由已知对象推出另一对象列表推导式 列表推导式内一般不涉及函数(匿名函数),因为其本身就自带函数的特性map可以是替代方法下图中的例子用推导式更佳元组推导式(一般称为生成器表达式)集合推导式4.字典推导式三、None与NoneTy...

2018-06-03 11:55:49 452

原创 python进阶:闭包、map/reduce/filter函数、lambda函数、装饰器

函数式编程一、闭包python一切皆对象 一切皆对象意味着,所有类型均可被赋值,传参~;函数可以当做参数传递,也可以被当做返回值返回;在其他一些语言中函数仅是一段代码块。闭包的定义与用法如何验证是闭包?闭包的应用场景 实现计步功能 使用闭包的环境变量而不借助全局变量,实现了良好的封装性!!!二、匿名函数/表达...

2018-06-01 16:37:07 360

原创 python进阶:JSON与枚举

JSON一、JSON的定义json是一种轻量级数据交换格式,json是一种数据格式!!json字符串是一种承载形式,表现形式json的对象类型是json众多格式的一种类型,此外还有json数组等。。所谓json对象特指javascript中对象的一种,在其他语言中无此说法!json格式经过json.loads(反序列化)方法后,转换对应关系:json、javascrpt...

2018-05-31 16:29:31 2534

原创 python基础:细节问题梳理

基本数据类型字符串1. 多行字符串 2. 原始字符串序列共同特征字符串index访问切片拼接数乘 2. 列表 + index访问切片拼接数乘 3. 元组index访问切片拼接数乘注意:序列中不存在减运算序列的in/len/min/max()注意:min/mx遵循ascll码,方法...

2018-05-30 14:21:29 359

原创 在ubuntu16.04中安装apache2+modsecurity以及自定义WAF规则详解

一、Modsecurity规则语法示例 SecRule是ModSecurity主要的指令,用于创建安全规则。其基本语法如下:SecRule VARIABLES OPERATOR [ACTIONS] VARIABLES 代表HTTP包中的标识项,规定了安全规则针对的对象。常见的变量包括:ARGS(所有请求参数)、FILES(所有文件名称)等。 OPERATOR 代表操...

2017-10-15 17:29:00 647

原创 在ubuntu16.04中一键创建LAMP环境 新系统

 在ubuntu16.04中一键创建LAMP环境  执行命令apt-get update。 执行命令apt-get install lamp-server^。 在安装过程中会跳出Mysql数据库root用户密码设置窗口,按要求输入密码:123,按Tab键选择"Ok",按回车进入下一步,如下图所示: 重复输入密码:123,按Tab键选中"Ok"...

2017-10-14 20:20:00 200

原创 在ubuntu16.04中一键创建LAMP环境

 步骤 1 执行命令apt-get update。步骤 2 执行命令apt-get install lamp-server^。步骤 3 在安装过程中会跳出Mysql数据库root用户密码设置窗口,按要求输入密码:123,按Tab键选择“Ok”,按回车进入下一步,如下图所示: 步骤 4 重复输入密码:123,按Tab键选中“Ok”,按回车继续安装,如下图所示: 步骤 5 打开...

2017-10-14 14:08:00 815 2

kindle字典合集

kindle词典合集 科斯林 新世纪英汉等等。。。 kindle词典合集 科斯林 新世纪英汉等等。。。 kindle词典合集 科斯林 新世纪英汉等等。。。 kindle词典合集 科斯林 新世纪英汉等等。。。 kindle词典合集 科斯林 新世纪英汉等等。。。 kindle词典合集 科斯林 新世纪英汉等等。。。 kindle词典合集 科斯林 新世纪英汉等等。。。

2018-04-10

信息安全专业科技英语

全书分为 9 章。第 1 章“Hacker Attack Technology”主要介绍黑客和攻击的 概念以及目前常见的黑客攻击手法。第二章“Cryptography”,主要介绍当前各种 密码学技术。第三章“Firewall”主要介绍防火墙技术及防火墙的结构。第四章 “Intrusion Detection System”主要介绍入侵检测系统、入侵防御系统以及异常防 御系统等。第五章“Network Security Protocol”主要介绍当前流行的一些网络安 全协议包括 Kerberos 协议、SSL 协议、SET 协议和 IPsec 协议。第六章“Virtual Private Network”主要介绍虚拟专用网技术。第七章“Computer Virus”主要介绍 计算机病毒。第八章“Public Key Infrastructure”主要介绍公钥基础设施及 CA 证 书。第九章“Information Security Management”简要介绍了当前信息安全管理方 面的一些知识。

2018-03-27

空空如也

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

TA关注的人

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