背景:网络传输层中,一般采用TCP协议,如果要建立连接,客户端会先发送syn包请求,服务器接收,接收后,再传递给客户端ack,syn包,这个时候,客户端再次回应,传回ack包。可是问题就出在,如果我是客户端,只发送一个请求syn包,然后第三次握手的时候,不再往回传ack包,此时服务端是不是就要等待?在等待的时间里,我是不是可以伪造更多的请求,从而不断消耗服务器的资源,然后直到最后服务器停止服务为止?上述这种攻击就是syn泛洪攻击。python中scapy库
系统 2019-09-27 17:54:25 2305
再看继承真正的大餐来之前,还是来点儿开胃菜!回顾一下关于类的继承的知识:我们先看上面的代码,这是一个简单的类继承,我们可以看到父类Base和子类Son,它们中各有一个Testfunc方法,当我们实例化子类的对象sonobj时,可以看到初始化方法中黄色框框调用了Testfunc,那么这个时候执行的是哪个类里面的代码呢?我会告诉你执行的是子类里面的方法,不信就自己试试吧,代码在下面~为什么呢?其实这里是绕了一个圈,所以把很多人绕晕了,包括我!后来想想其实很容易
系统 2019-09-27 17:54:10 2305
python程序结构python“一切皆对象”,这是接触python听到最多的总结了。在python中最基层的单位应该就是对象了,对象需要靠表达式建立处理,而表达式往往存在于语句中,多条语句组成代码块,多个代码块再组成一整个程序。python的核心其实是由语句和表达式组成。所以在这里简单探讨一下python中的语句和表达式。因为以后可能会接触到两个版本的python,所以这里讲一讲python2与python3的语句差异:1.python2中没有noloc
系统 2019-09-27 17:54:05 2305
Python入门之内置模块--re模块1、re模块(1)什么是正则?正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。(在Python中)它内嵌在Python中,并通过re模块实现。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。元字符匹配内容\w匹配字母(包含中文)或数字或下划线\W匹配非字母(包含中文)或数字或下划线\s匹配任意的空白符\S匹配任意非空白符
系统 2019-09-27 17:52:48 2305
前言如果大家在网上搜索Python正则表达式,你将会看到大量的垃圾文章会这样写代码:importrepattern=re.compile('正则表达式')text='一段字符串'result=pattern.findall(text)这些文章的作者,可能是被其他语言的坏习惯影响了,也可能是被其他垃圾文章误导了,不假思索拿来就用。在Python里面,真的不需要使用re.compile!为了证明这一点,我们来看Python的源代码。在PyCharm里面输入:i
系统 2019-09-27 17:52:47 2305
场景说明假设有一个mysql表被水平切分,分散到多个host中,每个host拥有n个切分表。如果需要并发去访问这些表,快速得到查询结果,应该怎么做呢?这里提供一种方案,利用python3的asyncio异步io库及aiomysql异步库去实现这个需求。代码演示importloggingimportrandomimportasynciofromaiomysqlimportcreate_pool#假设mysql表分散在8个host,每个host有16张子表TB
系统 2019-09-27 17:50:32 2305
Python操作RabbitMQ路由(六)一、路由(Routing):本章打算新增加一个功能,使它可以达到仅订阅消息的一个子集。举个栗子,我们需要把验证的错误日志信息写入日志文件(存储到磁盘),但同时仍然把所有的日志信息输出到控制台中。二、绑定(Bindings):绑定(Binding)是指交换机(Exchange)和队列(Queue)的关系;绑定的时候可以带上一个额外的routing_key参数。为了避免与basic_publish的参数混淆,我们把它叫
系统 2019-09-27 17:50:10 2305
目录一、Admin的配置1.激活管理工具2.使用管理工具3.注册超级用户4.修改语言二、管理数据模型1.注册medel类到admin2.自定制类一、Admin的配置Admin是Django的一个强大的功能,它能从数据库中读取数据,并呈现在页面中,进行管理。默认情况下,它的功能已经非常强大,如果你不需要复杂的功能,它已经够用,但是有时候,一些特殊的功能还需要定制,比如搜索功能,下面这一系列文章就逐步深入介绍如何定制适合自己的admin应用。1.激活管理工具通
系统 2019-09-27 17:49:37 2305
实现步骤:1、通过水平投影对图形进行水平分割,获取每一行的图像;2、通过垂直投影对分割的每一行图像进行垂直分割,最终确定每一个字符的坐标位置,分割出每一个字符;先简单介绍一下投影法:分别在水平和垂直方向对预处理(二值化)的图像某一种像素进行统计,对于二值化图像非黑即白,我们通过对其中的白点或者黑点进行统计,根据统计结果就可以判断出每一行的上下边界以及每一列的左右边界,从而实现分割的目的。下面通过Python+opencv来实现该功能首先来实现水平投影:im
系统 2019-09-27 17:48:51 2305
python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序、去重,字典排序,字典、列表、字符串互转,时间对象操作,命令行参数解析(getopt),print格式化输出,进制转换,Python调用系统命令或者脚本,Python读写文件。1、正则表达式替换目标:将字符串line中的overview.gif替换成其他字符串复制代码代码如下:>>>line=''>>>mo=re.compile(r'(?<=SRC=)"([\w+\.]+
系统 2019-09-27 17:47:40 2305