在C/C++程序中调用High Level的Python API

2020-05-13
阅读 3 分钟
2.2k
分为High Level API和Low Level API。Low Level API是API的基础,调用High Level API时,Python基础库会为C/C++程序创建全局的运行环境。

编写的第一个POC代码

2019-02-20
阅读 4 分钟
3.5k
使用如下GCC指令编译,关闭PIE(Position-independent Executable,指令位置无关可执行程序),关闭栈保护功能,启用栈可执行功能。

Linux系统下通过策略路由实现多默认路由

2017-07-19
阅读 2 分钟
24.9k
一般地说,在Linux系统路由表内只能有一条默认路由。当出站数据包根据目的IP地址选路失败后,执行默认路由,交默认路由指向的下一跳路由器(默认网关)转发数据包。

调用close()后发生了什么

2017-02-28
阅读 3 分钟
5.5k
场景介绍 我们考虑简单的客户端——服务器通信的场景,其典型模式为: 服务端通过close()主动关闭一个TCP连接 客户端通过read()获得了0(表示服务端没有数据),调用close()关闭这个连接。 在TCP层面表现为: 服务器调用close()后,向客户端发送FIN,客户端回应FIN-ACK。服务器进入FIN-WAIT-2状态,客户端进入CLOSE-WAIT状...

在Ubuntu16.04上设置Samba服务

2016-04-28
阅读 2 分钟
6.3k
Ubuntu上设置Samba的配置文件和CentOS有一些不同,增加了一个很方便的默认配置。这个默认配置为每个用户提供了访问自己家目录的设置。只需要取消注释,就可以直接访问,非常方便。

对立即数进行位移引发的小问题

2015-09-11
阅读 1 分钟
2k
socket_mask是一个64位的数。我们假设socket_mask=1,理论上当且仅当socket=1时,进入循环体执行continue以后的代码。但实际上,socket=1和socket=32时,循环体内的代码都会被执行。

利用Python生成随机的IP地址

2015-07-15
阅读 1 分钟
9.3k
(mask & 0xffffffff)这一用法,目的在于消除mask上32位以上的高位数据。由于mask是IPv4的掩码,所以不需要32位以上的数据。这一问题在mask取反之后比较明显。由于mask是一个32位以上的数(有可能是64位),取反之后,高位全部为1,计算的结果就不正确了。因此,在使用之前,需要利用(mask & 0xffffffff)清除高位。

稳定流量的数据包回放方法

2015-03-06
阅读 1 分钟
8.7k
在网络流量处理系统的开发过程中,经常需要通过一些方法进行流量回放。然而,一些常用的方法(如TcpReplay)进行包回放时,流量常常不稳定。为此,测试了一些方法,发现下面的方法比较好,发出的流量比较稳定。