分類: Python


  1. 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


  2. Python的内存管理机制

    python的内存管理分为三个方面:

    • 引用计数
    • 垃圾回收
    • 内存池机制

  3. python编写一个端口扫描器

    编写一个端口扫描器

    • 任何一个靠谱的网络攻击,都是起步于侦察。所以攻击服务器,也就是检查服务的漏洞。我使用的两种方式无非是web注入和端口扫描。所以先编写一个端口扫描器
    • 端口扫描是基于TCP的,一共分为三个步骤,分别编写三个方法:
      • 处理数据,也就是处理用户输入数据的,此处我们定义为main函数,用来获取主机名和端口
      • 将主机名转换为对应的IPv4互联网地址,采socket.gethostbyname(hostname),获取到IP,然后调用处理端口扫描的函数.定义为portScan(tgtHost,tgtPorts)
      • 端口扫描,也是就TCP的全连接,对目标地址和端口进行连接。最后为了确定该端口上运行的什么服务,我们还会发送垃圾信息,并读取返回的Banner.函数定义为connScan(tgtHost,tgtPort)