做一个靶机练习_djinn

前几天一直在背资料,背的很烦,找个靶机来玩玩.<!--more-->第一件事,先找一下主机地址,由于我在自己的局域网内,我不用扫也知道这台刚开的主机 ip 是多少...但如果不知道的话,可以用 nmap 检测一下,sS 是指用半开放式扫描,不会完成三次握手,速度要快一点sudo nmap -sS 192.168.1.0/24扫描结果如下Nmap scan report for djinn (192.168.1.8) Host is up (0.00010s latency). Not shown...阅读全文

Segmentfault 2020-10-10 18:32:32 五行缺金

MySQL 基础

什么是事务?事务就是满足 ACID 特性的一组操作,可以用 commit 提交一个事务,也可以用 rollback 回滚事务。AUTOCOMMITMySQL 默认 自动提交模式。也就是说,如果不显式使用 START TRANSACTION 语句来开始一个事务,那么每个查询都会被当做一个事务自动提交存储引擎MySQL 支持多种存储引擎,甚至你可以自己写一个专属的存储引擎,可以看一下 MySQL 的多存储引擎架构简介MySQL 中的数据用各种不同的技术存储在文件或内存中。这些技术中的每一种技术都使用...阅读全文

Segmentfault 2020-10-10 16:32:36 五行缺金

解读进程、线程与协程

前言在了解go(golang)语言之前,需要先复习(预习)下计算机的基础.这个在大学期间,计算机操作系统里面应该学过. 操作系统课程里面应该只是了解到了进程和线程的相关知识.对于实际场景中,并发需求经常出现, 对于java语言来说, 可以通过多线程并发来实现, 对于php来说,可以通过Swoole扩展来实现. 而go语言则从语言层面支持了协程实现, 并发编程这部分在最后再简单描述下.一、进程我们都知道计算机的核心是CPU,它承担了所有的计算任务;而操作系统是计算机的管理者,它负责任务的调度、资源...阅读全文

简书 2020-10-06 18:32:44 woodsMaple

golang

package main import ( "fmt" "github.com/jonas-p/go-shp" "github.com/mmcloughlin/geohash" "github.com/twpayne/go-geom" "log" "strconv" ) func main() { lat := 30.549608 lon := 114.376971 hash_base32 := geohash.EncodeWithPrecision(lat, lon, 8) fmt.Print...阅读全文

简书 2020-10-06 18:32:42 golang才是未来

耗时两年,我终于出了一本电子书!

2018 年国庆节前,我开通了微信公众号“Python猫”,写下了“喵星来客”系列的第一篇文章。2020 年国庆节前,我累计创作和翻译了 130+ Python 技术文章。时光匆匆,两年光阴很快就过去了。在这个特殊的时间节点上,我感觉有必要把创作的内容做一下梳理,于是,也就诞生出了这一本自制的电子书——《优雅的Python》。 看得出来,书名模仿了《流畅的Python》,主要原因是我非常喜欢它,而且正是因为这本书带给我学习 Python 时的很多启发,我才敢于走上技术写作的道路。Python 简...阅读全文

Segmentfault 2020-10-10 16:32:36 豌豆花下猫

golang获取java uuid的mostSigBits和leastSigBits

一直在解决golang直接使用spring cloud stream的问题,计划实现无缝对接,首先解决的是head中生成java uuid的问题,因为spring cloud stream的head是基于java序列化的,所以golang也要实现同样的序列化。 下面的代码是获取uuid中的mostSigBits和leastSigBits,用于java格式的uuid序列化。 package main import ( "fmt" "strconv" "strings" "github.com/go...阅读全文

简书 2020-10-06 13:32:39 EasyNetCN

14.Golang设计模式之责任链模式

责任链模式 GitHub代码链接 1. 简介 Chain of Responsibility Pattern为请求创建一个接受者对象的链,这样可以使得请求和发送者解耦。 2. 责任链模式解决的问题 为了避免请求者和发送者耦合在一起,让多个对象都有可能接收数据,我们将这些接受者对象连城一个链,并且沿着这条链传递请求。直到有对象处理这个请求为止。 2.1 使用场景 js中的事件冒泡 Linux内核中的软件中断 2.2 优点 降低耦合度 简化接收对象,增加和减少请求的处理很容易 通过改变链内的成员或者...阅读全文

简书 2020-10-06 13:32:39 ShawnLee_123

Golang项目中引入yaml.v2配置文件

在Go语言项目中,常用的配置文件yaml、toml、json、xml、ini几种,因为本章主要讲解yaml配置文件的使用方法,其他几种配置文件在这里就不展开了介绍了,大家有兴趣可以自行百度。 yaml文件的语法网上有很多的教程,大家自行百度,这里也推荐两个链接: 快速了解:https://cloud.tencent.com/developer/article/1474944 系统学习:https://www.yiibai.com/yaml/yaml_basics.html yaml文件解析使用的...阅读全文

简书 2020-10-06 01:32:40 RichardTao

【go语言学习】反射reflect

一、认识反射 维基百科中的定义: 在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为。 不同语言的反射模型不尽相同,有些语言还不支持反射。 Go 语言支持反射,它提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具体类型。 1、为什么要用反射 需要反射的 2 个常见场景: (1)有时你需要编写一个函数,但是并不知道传给你的参数类型...阅读全文

简书 2020-10-06 00:32:39 Every_dawn

【Golang】内存管理

概述 全局内存 Golang的内存管理与C语言的有所区别:C语言使用Malloc进行内存分配,使用的是gclib提供的ptmalloc2方法;Golang的内存分配方法类似于Google的TCMalloc,以及MC的内存池管理方式,即: 预先申请一大块全局内存,即Arena 堆,大小为512G 每个线程需要使用内存时向全局内存申请,并维护在线程内部的结构中作为私有内存 该方法相对于ptmalloc更好地支持了多线程场景,并且优化了外碎片(类似于操作系统的页式管理) 内存块管理 全局内存Arena...阅读全文

简书 2020-10-05 23:32:41 千杉沐雪

go基础——buffer

内容 1 bytes.Buffer 2 strings.Builder 3 bufio包 前言 bytes.Buffer strings.Builder和bufio都是golang中经常使用的提供了缓冲池的数据结构,他们内部都是封装了一个[]byte, 可以用来高效的操作字节切片、字符串和io操作 一 byte.Buffer byte.Buffer是一个简单字节缓冲池,内部包了一个字节数组,在某些频繁io的操作中,可以使用buffer来做一个读取或是写入的缓冲池,来提高效率 // A Buffe...阅读全文

简书 2020-10-05 20:32:39 酷酷码农

13.Golang设计模式之代理模式

代理模式 GitHub代码链接 代理模式(Proxy Pattern)中,一个类代表另一个类的功能。 什么是代理模式 代理模式为其他对象提供一种代理,以控制对这个对象的访问。 解决了什么问题 代理模式解决了直接访问对象时带来的问题,比如直接访问的对象在远程机器上。 优点 职责清晰 高扩展性 智能化 缺点 由于在客户和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求速度变慢。 实现代理模式需要额外的工作,有些代理模式实现较为复杂 代码实现 1. 实现一个Image接口 //Imag...阅读全文

简书 2020-10-05 18:32:38 ShawnLee_123

手动实现sync.once

介绍sync.Once是一个简单而且强大的同步原语,使用它可以保证引用的函数只执行一次,经常在初始化配置时候用到该同步原语。就它的用法看一个示例:func main() { var once sync.Once for i := 0;i < 10;i++{ go func() { once.Do(func() { fmt.Println("once内") }) }() } time.Sleep(time.Second*5) } /* 输出结果: once内 */可以看到,在并发情况下,该函数只执...阅读全文

Segmentfault 2020-10-10 16:32:33 郭朝

tcpdump 使用

TCPDump 可以将网络中传送的数据包完全截获下来提供分析,支持针对网络层、协议、主机、网络或端口的过滤。-a 尝试将网络和广播地址转换成名称。-c<数据包数目> tcpdump将在接受到count个数据包后退出。tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 26214...阅读全文

Segmentfault 2020-10-09 16:32:34 五行缺金

使用go来实现一个投注摇奖的小程序

说明: 用户输入要投注彩票的类型及金额,然后使用if语句根据程序生成随机数的大小来判断用户中奖的情况 本实现主要练习 1:用户输入的方法 2:随机数的练习 3:if else的练习 代码如下: package main import ( "fmt" "math/rand" "time" ) func main() { /*提示内容打印*/ fmt.Printf("请输入你要购买的彩票及金额:") //定义变量 var CpType string var money int //获取手工输入的值,...阅读全文

51CTO博客 2020-10-03 23:00:58 redcock

11.Golang设计模式之外观模式

外观模式 GitHub代码链接 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问的接口。 什么是外观模式 外观模式为子系统中的一组接口提供一个一致的界面,这个接口使得这一子系统更加容易使用。 解决了什么问题 降低子系统访问的复杂性,简化客户端与子系统之间的接口。 优点 减少系统间的相互依赖 提高灵活性 提高安全性 缺点 不符合开闭原则 代码实现 创建三个模型实例,使用一个外观类来包含这三个模型实例,使得用户可以通过外观类使用统一的接口来调用这三个模型实...阅读全文

简书 2020-10-05 10:32:46 ShawnLee_123

【go语言学习】并发概念

一、并发性Concurrency 1、多任务 多任务是操作系统可以同时执行多个任务。如,可以一边听音乐,一边刷微博,一边聊QQ,还能同时开微信。这就是多任务同时运行。 2、线程process与进程thread、协程coroutine 进程是一个程序在一个数据集中的一次动态执行过程,可以简单理解为“正在执行的程序”,它是CPU资源分配和调度的独立单位。 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发...阅读全文

简书 2020-10-05 10:32:46 Every_dawn

seaweedfs部署文档

1.seaweedfs的概述seaweedfs是一个非常优秀的由golang开发的分布式存储开源项目。它是用来存储文件的系统,并且与使用的语言无关,使得文件存储在云端变得非常方便。在逻辑上Seaweedfs的几个概念:Node系统抽象的节点,抽象为DataCenter、Rack、DataNodeDataCenter数据中心,对应现实中的不同机房Rack机架,对应现实中的机柜Datanode存储节点,用于管理、存储逻辑卷Volume逻辑卷,存储的逻辑结构,逻辑卷下存储NeedleNeedle逻辑卷...阅读全文

简书 2020-10-05 10:32:41 学有境