-
Python GIL那些事
GIL是什么?
GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。
- CPython实现中的GIL?
Global Interpreter Lock
In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython’s memory management is not thread-safe. (However, since the GIL exists, other features have grown to depend on the guarantees that it enforces.)
一个防止多线程并发执行机器码的一个Mutex
- CPython实现中的GIL?
-
Python的内存管理机制
-
Redis基础篇
Redis
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。
-
初探node.js
什么是node.js
node.js != Javascript
事实上,Node.js采用C++语言编写而成,是一个Javascript的运行环境。- Node.js 是构建于Chrome的JavaScript引擎的
Google的浏览器Chrome,有一个非常快速的JavaScript引擎,叫做V8。这个JS引擎可以被独立出来,该解释器拥有另一个独特特征;可以下载该引擎并将其嵌入任何 应用程序。Node.js就是建立在V8之上的。这也是为什么Node.js会运行的如此之快。对于开发者来说,有几个好处:- js完全通用
- v8的发展影响着node.js
- Node.js 是构建于Chrome的JavaScript引擎的
-
python编写一个端口扫描器
编写一个端口扫描器
- 任何一个靠谱的网络攻击,都是起步于侦察。所以攻击服务器,也就是检查服务的漏洞。我使用的两种方式无非是web注入和端口扫描。所以先编写一个端口扫描器
- 端口扫描是基于TCP的,一共分为三个步骤,分别编写三个方法:
- 处理数据,也就是处理用户输入数据的,此处我们定义为main函数,用来获取主机名和端口
- 将主机名转换为对应的IPv4互联网地址,采socket.gethostbyname(hostname),获取到IP,然后调用处理端口扫描的函数.定义为portScan(tgtHost,tgtPorts)
- 端口扫描,也是就TCP的全连接,对目标地址和端口进行连接。最后为了确定该端口上运行的什么服务,我们还会发送垃圾信息,并读取返回的Banner.函数定义为connScan(tgtHost,tgtPort)