最近为了对无线数据进行深度学习分析,需要定时抓包采样,当然这种事情还是让python来做吧,毕竟人力资源是昂贵的。脚本非常简单,但结构绝对严谨。有些伙伴在创建子进程后就不知道去结束子进程。这个脚本就包含了子进程中的进程问题,遂在结束进程后再去结束调用程序的进程。
import os
from time import strftime,sleep
import subprocess
while 1:
filename=strftime('%H:%M')#获取系统时间,作为文件的输出名称
#print(filename)
cmd='airodump-ng {} --output-format {} -w {} -c {}'.format('wlan0mon','pcap',filename,13)#wlan0mon指无线网卡,pcap为抓包文件输出格式,13为access point的信道。
proc=subprocess.Popen(cmd,shell=True)#shell=True 子进程不会继承父进程的输出,管道等。
sleep(300)#每隔五分钟进行一次抓包
proc.terminate()#结束子进程
os.system('pkill airodump-ng')#结束调用程序airodump-ng的独立进程
print("capture data again!")
22 (2).png
网友评论