背景:网络传输层中,一般采用TCP协议,如果要建立连接,客户端会先发送syn包请求,服务器接收,接收后,再传递给客户端ack,syn包,这个时候,客户端再次回应,传回ack包。可是问题就出在,如果我是客户端,只发送一个请求syn包,然后第三次握手的时候,不再往回传ack包,此时服务端是不是就要等待?在等待的时间里,我是不是可以伪造更多的请求,从而不断消耗服务器的资源,然后直到最后服务器停止服务为止?上述这种攻击就是syn泛洪攻击。python中scapy库
系统 2019-09-27 17:54:25 2224
Python入门之内置模块--re模块1、re模块(1)什么是正则?正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。(在Python中)它内嵌在Python中,并通过re模块实现。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。元字符匹配内容\w匹配字母(包含中文)或数字或下划线\W匹配非字母(包含中文)或数字或下划线\s匹配任意的空白符\S匹配任意非空白符
系统 2019-09-27 17:52:48 2224
上次完成的url爬取项目并不能满足需求,在此完成了一个更为强大的爬取代码,有需要的可以直接运行,根据自己爬取的网站更改部分正则和形参即可。前排提示:运行需要耐心,因为几千个url爬完的话,还是建议花生瓜子可乐电影准备好。下面是代码,代码有注释,很容易理解。注意:爬虫代码每过一段时间就需要更新,因为爬的东西在变,所以可能过一段时间就要更新爬虫。#-*-coding:utf-8-*-"""CreatedonWedSep2914:01:282018@author
系统 2019-09-27 17:52:48 2224
旋转椭圆实例代码:importmatplotlib.pyplotaspltimportnumpyasnpfrommatplotlib.patchesimportEllipsedelta=45.0#degreesangles=np.arange(0,360+delta,delta)ells=[Ellipse((1,1),4,2,a)forainangles]a=plt.subplot(111,aspect='equal')foreinells:e.set_c
系统 2019-09-27 17:52:38 2224
numpy中的random模块有多个函数用于生成不同类型的随机数,常见的有uniform、rand、random、randint、random_interges下面介绍一下各自的用法1、np.random.uniform的用法np.random.uniform(low=0.0,high=1.0,size=None)作用:可以生成[low,high)中的随机数,可以是单个值,也可以是一维数组,也可以是多维数组参数介绍:low:float型,或者是数组类型的,
系统 2019-09-27 17:52:05 2224
关于pythonsetup.pybdistpythonsetup.pysdist两者的区别sdist指的是sourcedist即源码发布,带setup.pybdist指的是built(binary)dist即编译过(二进制)发布不带setup.py查看setup.py各种编译命令参数pythonsetup.py--help-commands查看具体某个命令参数pythonsetup.pybdist--help查看setup.py配置的参数pythonset
系统 2019-09-27 17:50:27 2224
这个乘法表看上去比较舒服,(●’◡’●)foriinrange(1,10):#i取值1到9forjinrange(1,i+1):#j取值1到is="%d*%d=%d"%(j,i,i*j)#赋值乘法公式print(s.ljust(8),end='')#每个字符串占8字符,左对齐,i不变时结尾不换行print()#i变时换行函数defmult(n):foriinrange(1,n+1):forjinrange(1,i+1):s='%d*%d=%d'%(j,i,
系统 2019-09-27 17:49:52 2224
while循环Python中while语句的一般形式while判断条件:语句while有限循环n=100sum=0counter=1whilecounter<=n:sum=sum+countercounter+=1print("1到%d之和为:%d"%(n,sum))while无限循环我们可以通过设置条件表达式永远不为false来实现无限循环,实例如下:var=1whilevar==1:#表达式永远为truenum=int(input("输入一个数字:")
系统 2019-09-27 17:49:30 2224
一、死锁简单来说,死锁是一个资源被多次调用,而多次调用方都未能释放该资源就会造成死锁,这里结合例子说明下两种常见的死锁情况。1、迭代死锁该情况是一个线程“迭代”请求同一个资源,直接就会造成死锁:importthreadingimporttimeclassMyThread(threading.Thread):defrun(self):globalnumtime.sleep(1)ifmutex.acquire(1):num=num+1msg=self.name
系统 2019-09-27 17:46:39 2224
处于某些业务需求需要对一些特定的图片增加水印,于是去了解了PIL这个库,可以完美的解决这个问题实现效果如下:具体代码如下:fromPILimportImage,ImageDraw,ImageFontimageFile="./image/two.jpg"imageInfo=Image.open(imageFile)fontOne=ImageFont.truetype("C:\Windows\Fonts\simfang.ttf",100)fontTwo=Im
系统 2019-09-27 17:46:13 2224