- 博客(36)
- 收藏
- 关注
原创 为什么ip default-gateway 172.44.1.1不work但是ip route 0.0.0.0 0.0.0.0 172.44.1.1却能把所有流量正确导向下一跳指定ip?
总而言之就是ip default-gateway只在设备配置了no ip routing时才生效enable ip routing的情况下ip default-gateway即使配置了也会被忽略参考: https://community.cisco.com/t5/switching/ip-default-gateway-problem/td-p/2977086The reason why you need the “ip route” statement to reach 192.168.20.1 i
2020-12-03 06:07:06
625
原创 cisco设备接口下配置encapsulation dot1q vlan-id的作用
https://learningnetwork.cisco.com/s/question/0D53i00000Kt7P2/encapsulation-dot1q-vlan-id有时候我们会看到一些路由器的子接口下面配置了encapsulation dot1q vlan-id, 比如:Router#sh run int GigabitEthernet0/1.633Building configuration...Current configuration : 209 bytes!interfac
2020-11-10 23:41:42
7520
原创 IPSec技术详解
原创不易, 转载请注明作者和出处1. VPM的用处广域网存在各种安全隐患1.1 数据会被窃听的风险-----解决方案:加密1.2 数据会被篡改的风险–解决方案:完整性验证1.3 通信双方又被冒充的风险–解决方案: 认证解决方案:2.1 如果让运营商拉专线会很贵…2.2 采用IPSec VPM2. IPSec概念: IPSec只提供框架,使用者可以选择任一加密算法比如DES, 3DES, AES3. 封装模式3.1 传输模式 Transport Mode 保留原始IP头部 无法
2020-10-27 02:42:50
1699
原创 懒人式理财软件--Wealthfront使用方法详细介绍
1. 前言Wealthfront Inc.是一家位于加利福尼亚州帕洛阿尔托的自动化投资服务公司,由Andy Rachleff和Dan Carroll于2008年创立。截至2019年1月,Wealthfront管理的资产超过114亿美元。这款软件就是我们常说的“托管式理财软件”了,对于我这种刚接触理财,想买股票,基金,债券却又连他们各自的优缺点都分不清楚的小白来说无疑是一个福音。 这个软件最大的优点是管理费非常便宜,按照百分比来算,你每存入5000美金一年只需要给Wealthfront交12美金的管理费就
2020-10-12 10:34:37
16973
4
原创 Python的class中继承object和不继承object的区别
1. Python2中默认不继承object在python2的class中继承object类就会继承到object的所有属性,不继承的话就只能使用自己的class中定义的变量。举例:class Person: """ 不带object """ name = "zhangsan"class Animal(object): """ 带有object """ name = "husky"if __name__ == "__main__
2020-10-08 05:48:44
929
原创 PBR(策略路由)和路由策略的区别详解
参考: http://blog.sina.com.cn/s/blog_5cfb2dc00102xxrj.html先说策略路由也就是PBR:它不会影响路由表的生成,设备的路由表是已经存在而且稳定的。举个例子:用TCP/IP路由技术一书的表述就是:策略路由就是一个复杂的静态路由。总结:策略路由是一个基于路由表的影响特定数据包的转发的一个方式,这个方式是应用于接口下的。例如:让源地址是192.168.1.1的数据包都从s0/1走,让源地址是192.168.1.2的数据包都从s0/1走access-l
2020-09-03 04:19:05
2976
1
原创 网络常见故障之BGP抖动--BGP Flapping
参考: https://www.cisco.com/c/zh_cn/support/docs/ip/border-gateway-protocol-bgp/19167-bgp-rec-routing.html此问题的出错原因在:EBGP邻居使用环回口地址建立(如果用邻接口就不会有此问题)为了让Router A能在建立BGP邻居前ping Router B的lo 0口在A和B上分别添加了24位的环回口地址静态路由(这里如果用32位也就没这个问题了)BGP邻居建立后又傻乎乎的吧20.20.20.
2020-08-29 00:24:55
1238
3
原创 windows server 2012/2016如何禁止某个ip或者ip地址段访问
参考文档: https://help.aliyun.com/knowledge_detail/40699.html?spm=a2c4e.11153987.0.0.1d457d66RiZi3ANote: 此文档是很老的windows server的界面,不具有太大价值,但是里面讲解了很多其他的禁用或者放行ip的方法,笔者没有尝试过,所以记录在此以后验证更新本文档。前言:使用windows server的防火墙配置inbound rule和outbound rule比较复杂,禁止IP时笔者尝试了一次但没有
2020-08-20 20:24:56
8981
原创 AWS中IGW,NAT GW以及Egress-only IGW的概念和区别
首先推荐两篇英文文章详细讲解了IGW, NAT GW以及Egress-only GW的概念和区别:https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway.htmlhttps://medium.com/awesome-cloud/aws-vpc-difference-between-internet-gateway-and-nat-gateway-c9177e710af61. IGWIGW可以让你的
2020-08-18 22:03:35
4725
原创 软件测试那些事儿(持续更新中)
1. 什么是正向测试用例和反向测试用例正向测试用例(Positive Test Case)和反向测试用例(Negtive test Case)是对测试用例的一种分类。举例如下:一个登陆输入框只能输入邮箱号,那么正向用例可以为:11@22.com反向用例可以为:其它值(往往输入后期望抛出异常或者给出error提示)反向测试用例通常指,系统不支持的输入或状态,这类用例可以检查系统的容错能力和可靠性。这么分类的意义:1)往往我们会把正向测试用例优先级设置为较高或者必测case,反向测试用例优先
2020-08-10 20:41:12
6410
原创 为何快速排序算法在左右都等于pivot基准值时还要进行一次交换?
前言:快排作为世界十大经典算法之一,其重要性就不再多谈了。 我在学习快排过程中有一个很大的疑惑是为什么在进行从左到右和从右到左的扫描时,如果左右都等于pivot基准值还要进行一次交换。下面我们详细分析下。注意:快排有非常多的写法,我们只能针对一段代码中的扫描和什么时候停止扫描进行元素交换的逻辑进行分析。不能说本文的解析适用于所有人写的快排。话不多说,先上java代码:public class Solution { public void sortArray(int[] A) { if (A =
2020-08-02 09:57:57
907
转载 Java “==“ 和 “equals()“的区别
转载自:生命壹号:http://www.cnblogs.com/smyhvae/文章来源:http://www.cnblogs.com/smyhvae/p/3929585.html【正文】平时在学Android和Java语言的时候,总是碰到“equals”和“==”这两个字符,老感觉差不多;其实还是有一些区别的,今天干脆把它们彻底弄清楚。一、java当中的数据类型和“==”的含义:基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,bo
2020-07-28 12:42:58
161
1
转载 java中的break、continue、return区别
转载自: https://blog.csdn.net/fly910905/article/details/836584721、break:可以用于for循环等循环体和开关语句switch case中;用在循环中时,break是指跳出当前的循环体,如果是嵌套循环的话,只能跳出离break最近的for循环层;例如: public static void main(String[] args) { for (int i = 0; i<=5; i++) { if
2020-07-18 05:20:28
386
转载 如何将C++制作为python扩展文件(.pyd,动态链接库)
Python提供的许多标准模块支持C或者C++接口。我们自己也可以制作自己的模块来提供给python使用。include文件和lib文件在python的安装目录下,如果只是普通安装的python程序,那么是没有调试用的lib文件的。只用release就可以了。建立dll文件VS2005-新建项目-win32-win32项目,选择dll。在住文件cpp里,增加如下代码:#include<Python.h>std::string Recognise_Img(const std::stri
2020-07-17 05:48:47
2711
原创 Python的包(package)和模块(module)的区别,如何导入python包和模块,以及为什么可以把包名当作一个模块导入
本文主要讨论标题中的三大问题,接下来逐一分析:文章大部分内容转载并重新整理自https://zhuanlan.zhihu.com/p/339131311. Python的包(package)和模块(module)的区别首先分清python中模块、库、包之间的概念差异:模块(module)其实就是py文件,里面定义了一些函数、类、变量等包(package)是多个模块的聚合体形成的文件夹,里面可以是多个py文件,也可以嵌套文件夹库是参考其他编程语言的说法,是指完成一定功能的代码集合,在python
2020-07-15 14:14:07
18266
原创 Java String字符串类型导致内存溢出的分析和解决方案 (使用string += 为什么会导致内存占用过高?)
1. String类型变量操作时为何容易内存溢出在实际工程或者算法题练习中,我们有时候会遇到String类型变量导致内存溢出或者占用过高。原因是String类型在java中是immutable(不可直接修改)的变量,所以对于字符串我们是不能直接修改的,只能重新生成占据新的栈空间。String[] words = s.split(" ");for (int i = 1; i < words.length; i++) { str += " " + words[i]; }s是一个空格分隔的超
2020-07-15 06:37:16
26522
2
原创 zTree简易教程及源码 (js, jQuery, html,树节点如何默认展开和收起)
1.什么是zTreezTree是jQuery的树状结构的一个插件,可以简单理解为在网页上帮助我们更好的去展示一些树状结构的数据。2. 在HTML页面中如何使用zTree2.1 需要注意的点:【1】首先要引入相关资源, 有时你选择的zTree和jquery版本不匹配可能导致页面上展示不出来,需要自己查找匹配的版本【2】在一个div中通过ul无序列表展示ztree,注意这里的id一定要和后面的ztree 代码匹配才能展示出来!!!<div style="margin-top: 20px;"&g
2020-07-13 08:31:20
18298
1
原创 Java几种数据结构的先入先出和后入先出汇总
1. Queue: 先入先出,就像排队import java.util.Queue;import java.util.LinkedList;Queue<Interger> queue = new LinkedList<>();queue.offer(1); //队尾加入int num = queue.poll; //队首弹出2. Stack: 后入先出,后来居上import java.util.Stack;Stack<Integer> stack =
2020-07-13 02:28:12
20598
原创 Docker如何重启所有容器以及进入容器内部
1. Docker重启所有容器的linux命令行是:docker restart $(docker ps -q)2. Docker进入容器内部的命令是:docker exec -ti container_name /bin/bash
2020-07-07 04:21:27
21544
1
转载 自我提升篇之--张一鸣:我面试了2000个年轻人,混得好的都有这5种特质!
张一鸣:我面试了2000个年轻人,混得好的都有这5种特质!■ 来源 Bytedancer(Bytedancer)作者:张一鸣张一鸣 ,今日头条创始人,2013年,他先后入选《福布斯》“中国30位30岁以下的创业者”和《财富》“中国40位40岁以下的商业精英”。张一鸣演讲整理:为何毕业多年后原本水平差不多的同学都拉开了差距?大家好!各位都非常年轻,我今天来的时候挺有压力。因为我毕业快11年了,看到你们,真是觉得“长江后浪推前浪”。我去年参加了武汉的校招,感觉新一代年轻人的素质确实都非常好。我昨天
2020-06-28 22:24:42
330
原创 Java split()方法详解以及split()后开头多出空字符串的原因分析
1. split()方法介绍//java.lang.string.splitsplit()方法的作用是将一个字符串按照指定的分隔符分割为多个子字符串,然后将结果拼接为字符串数组返回。首先我们看一下源码的定义:stringObj.split([separator,[limit]])1. stringObj 是你想要分解的String对象。该对象本身是不会被split()方法修改的。2. separator: 分隔符,是可选项,它可以是字符串或正则表达式,如果不指定分隔符则会返回包含整个字符串的单一
2020-06-25 11:30:17
5325
1
原创 如何解决Git合并merge时的冲突(conflict)
1. Git Extensions 图形界面如何切换分支2. Git merge时的冲突如何解决通过图形化git工具可以手动查看冲突并选择你认为正确的合并后的最终结果,具体步骤如下:点击保存后冲突就被解决了。...
2020-06-24 09:51:32
4862
原创 Java的开方和次方Math.sqrt()方法和Math.pow()方法以及求解有多少种连续正整数之和为N的算法详解
1. Java的开方和次方运算java.lang.Math.sqrt(double a) 返回一个数字a的正平方根,返回结果是double型java.lang.Math.pow(double a, double b) 返回一个数字a的b次方,返回结果是double型有意思的是, 我们也可以通过Math.pow()实现开方运算,但是此时一定要注意第二个参数使用double型//java.lang.Math.sqrt(double a) 返回一个数字a的正平方根,返回结果是double型System.
2020-06-21 00:39:39
25639
原创 Java数据结构那些事儿--列表套列表(List of List)
1. List of List使用规范List<List<Integer>> list = new List<List<Integer>>() //错误写法,因为List是接口,不能实例化(Cannot instantiate the type List<List<Integer>>)。List<List<Integer>> list = new ArrayList<ArrayList<Integ
2020-06-20 00:38:51
17505
原创 Cisco ASA防火墙创建multi context多模式的新手入门教程
1. VRF和Multi Context多模式的区别VRF说白了就是创建多个彼此隔离的路由表。但是Multicontext是将一个设备虚拟成多个, 每个虚拟设备可以单独分配给不同的客户使用, 客户只能看到他被分配的那部分虚拟设备对应的资源。ASA正常来讲是没有VRF配置的, 只能配置Multi Context2. Cisco ASA Multi Context的创建及切换下面我们将ASA从单模式single mode切换到多模式multi mode//创建一个名字叫做edge的context
2020-06-19 03:04:52
1322
2
原创 Python的魔法方法setitem, getitem, delitem总结与案例分析
我们在Python中定义class的时候有几个很有意思的魔法方法, 这些方法可以让你创建的类富有其他builtin类型的class的特性(比如dict字典, list等)。案例一: 模拟python中的字典类class MyDict: def __init__(self,key,value): self.my_dict = {} self.my_dict[key] = value def __getitem__(self,key):
2020-06-16 05:17:27
493
原创 如何将本地项目上传到GITHUB远程仓库
本文主要讲解如何将本地项目上传到GITHUB远程仓库场景一:我在本地尚未创建任何项目这种情况适用于项目开发初期我们还没有在本地进行开发,这种情况最简单,我们可以先去github创建一个仓库(repository),然后将这个仓库直接克隆到我们的本地,以后就在这个本地仓库中进行项目的开发。在github创建一个新的仓库创建完成后我们复制github上远程仓库的地址在本地的一个文件夹下打开提前安装好的Git Bash或者直接使用CMD窗口执行git clone https://github.c
2020-06-14 13:58:49
385
原创 AWS的ELB(ALB/CLB/NLB)后面的web 服务器(比如nginx server)如何获取到客户端的client ip
1. 首先讲一下三种AWS ELB的对于源ip的区别处理CLB和ALB: 默认不会保留原始的客户端client ip, 而是在CLB或ALB中进行一次NAT转换把源ip转换为CLB/ALB的一个eni ip,目的ip地址转换为终端web服务器的server ip。NLB则分两种情况:1. Target Group中是用instance-id则客户端源ip会直接被保留传递给终端web服务器的ec22. Target Group中使用的IP address的话则像CLB/ALB一样进行源目地址的NAT
2020-06-12 10:00:53
22658
2
原创 Ubuntu安装Nginx并修改默认网页展示
1. 安装// 更新apt-getsudo apt-get update// 下载安装nginxsudo apt-get install nginx2. 查看状态sudo service nginx status3. 查看默认网页打开任意一个浏览器并输入ubuntu的ip地址即可看到默认网页4. 修改默认网页展示在ubuntu上sudo vi /var/www/html/index.nginx-debian.html//注意, 你的文件名和我的可能不完全相同, 但一般都在/v
2020-06-11 02:50:07
5395
2
原创 Map.getOrDefault()方法详细解析
首先我们讲解一下getOrDefault()的源码://HashMap.class @Override public V getOrDefault(Object key, V defaultValue) { Node<K,V> e; return (e = getNode(hash(key), key)) == null ? defaultValue : e.value; }Node是一个基础的hash bin节点, HashMap就是很多这样
2020-06-10 06:33:36
1841
原创 ArrayList转换为String的方法汇总(StringBuffer和StringUtils.join())
方法一:直接使用StringBuffer进行转换,简单易懂public String arrayToString() { List<Character> result = new ArrayList<Character>(); result.add('a'); result.add('b'); //['a', 'b'] StringBuffer resultStr = new StringBuffer();// 利用StringBuffer将arraylist转为strin
2020-06-02 12:11:23
21633
原创 for循环中条件(condition)为空的含义和用法 int i = 0 i++(扔鸡蛋算法)
@[TOC] for循环中条件(condition)为空的含义和用法以Java为例,有时候在代码中我们会看到如下类型的for循环代码public int forLoop(int n){ for (int i = 1; ; i++) { ans += (long) i; if (ans >= (long)n) { return i; } }}首先看一下java for循环的基本概念:for (statement 1; statement 2; sta
2020-05-30 10:53:29
24276
原创 Django连接MySQL(WAMP或单独安装)报错 1045 Access denied for user root using password YES
Django使用Python连接MySQL报错解决方案1. MySQL用户名和密码不对或者是端口号不对2. MySQL账号的权限不足以访问你想要访问的数据库2.1 如果你使用的和作者一样是WAMP自带的MySQL2.2 如果你使用的是单独安装的MySQL server作者在解决此问题的过程中查询了大量文章,解决方案主要分为两类:1. MySQL用户名和密码不对或者是端口号不对 此问题需要使用一个MySQL的终端先尝试用你的用户名密码以及端口号登陆一下确认自己没有记错登录信息。 ![在这里插入图片
2020-05-25 05:39:46
17249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人