python多线程操作
参考链接:Python多线程编程(详细:适合小白入门)-CSDN博客
线程是程序执行的最小单元,实际上进程只负责分配资源,而利用这些资源执行程序的是线程,也就是说进程是线程的容器,一个进程中最少有一个线程来负责执行程序.
进程

线程

python线程的创建步骤
①导入线程模块
import threading
②通过线程类创建进程对象
线程对象 = threading.Thread(target = 任务名)
③启动线程执行任务
线程对象.start()
运行多次,


可以看到线程间的执行顺序是无序的

了解线程的使用方法后,可以通过线程并发探测目标主机,几秒钟很快就能探测整个网段
import subprocess as p # p等同于subprocess
import threading
def ping(ip):
pings=p.Popen('ping -n 2 %s' % ip ,shell=True,stdin=p.PIPE,stdout=p.PIPE,stderr=p.PIPE,encoding='gbk') #这时windows,linux为ping -c 2
result=pings.stdout.read()
if 'TTL' in result:
print(ip,'alive')
def duo(ip):
iplist=ip.split('.')
ipd=iplist[0]+'.'+iplist[1]+'.'+iplist[2]
for i in range(1,256):
targetip=ipd+'.'+str(i)
t=threading.Thread(target=ping,args=(targetip,))
t.start()
if __name__=='__main__':
duo('192.168.199.1')

如果不采用线程,默认循环的方法进行探测会慢很多,跑了几分钟才结束


浙公网安备 33010602011771号