python 病毒脚本_python实现集中式的病毒扫描功能详解
本文实例讲述了python实现集中式的病毒扫描功能。分享给大家供大家参考,具体如下:
一 点睛
本次实践实现了一个集中式的病毒扫描管理,可以针对不同业务环境定制扫描策略,比如扫描对象、描述模式、扫描路径、调度频率等。案例实现的架构图如下,首先业务服务器开启clamd服务(监听3310端口),管理服务器启用多线程对指定的服务集群进行扫描,扫描模式、扫描路径会传递到clamd,最后返回扫描结果给管理服务器端。
本次实战通过ClamdNetworkSocket()方法实现与业务服务器建立扫描socket连接,再通过启动不同扫描方式实施病毒扫描并返回结果。
二 代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import pyclamd
from threading import Thread
class Scan(Thread):
def __init__ (self,IP,scan_type,file):
"""构造方法"""
Thread.__init__(self)
self.IP = IP
self.scan_type=scan_type
self.file = file
self.connstr=""
self.scanresult=""
def run(self):
"""多进程run方法"""
try:
cd = pyclamd.ClamdNetworkSocket(self.IP,3310)
if cd.ping():
self.connstr=self.IP+" connection [OK]"
cd.reload()
if self.scan_type=="contscan_file":
self.scanresult="{0}\n".format(cd.contscan_file(self.file))
elif self.scan_type=="multiscan_file":
self.scanresult="{0}\n".format(cd.multiscan_file(self.file))
elif self.scan_type=="scan_file":
self.scanresult="{0}\n".format(cd.scan_file(self.file))
time.sleep(1)
else:
self.connstr=self.IP+" ping error,exit"
return
except Exception,e:
self.connstr=self.IP+" "+str(e)
IPs=['192.168.0.120']
scantype="multiscan_file"
scanfile="/data"
i=1
threadnum=2
scanlist = []
for ip in IPs:
currp = Scan(ip,scantype,scanfile)
scanlist.append(currp)
if i%threadnum==0 or i==len(IPs):
for task in scanlist:
task.start()
for task in scanlist:
task.join()
print task.connstr
print task.scanresult
scanlist = []
i+=1
三 结果
1 无病毒的情况下,扫描结果
E:\Python\python_auto_maintain\venv\Scripts\python.exe E:/Python/python_auto_maintain/4_1_2.py
192.168.0.120 connection [OK]
None
2 有病毒的情况下,扫描结果
2.1 制作病毒测试文件
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
2.2 扫描结果
E:\Python\python_auto_maintain\venv\Scripts\python.exe E:/Python/python_auto_maintain/4_1_2.py
192.168.0.120 connection [OK]
{u'/data/EICAR': ('FOUND', 'Eicar-Test-Signature')}
希望本文所述对大家Python程序设计有所帮助。
python 病毒脚本_python实现集中式的病毒扫描功能详解相关推荐
- python编写病毒扫描器_python实现集中式的病毒扫描功能详解
本文实例讲述了python实现集中式的病毒扫描功能.分享给大家供大家参考,具体如下: 一 点睛 本次实践实现了一个集中式的病毒扫描管理,可以针对不同业务环境定制扫描策略,比如扫描对象.描述模式.扫描路 ...
- python process 函数_Python Process创建进程的2种方法详解
前面介绍了使用 os.fork() 函数实现多进程编程,该方法最明显的缺陷就是不适用于 Windows 系统.本节将介绍一种支持 Python 在 Windows 平台上创建新进程的方法. Pytho ...
- python内存池_python内存监控工具memory_profiler和guppy的用法详解
python内存监控工具memory_profiler和guppy的用法详解 发布时间:2020-08-21 19:44:58 来源:脚本之家 阅读:123 python2.7在内存管理上相比pyth ...
- python sqlsever 时间_Python sqlalchemy时间戳及密码管理实现代码详解
一.时间戳 实际开发中,我们一般希望create_time和update_time这两个属性能自动设置,所以在建表的时候需要在model上特殊处理一下: from sqlalchemy.sql imp ...
- python 元组拆包_Python元组拆包和具名元组解析实例详解
前言 在Python中元组是一个相较于其他语言比较特别的一个内置序列类型.有些python入门教程把元组成为"不可变的列表",这种说法是不完备的,其并没有完整的概括元组的特点.除了 ...
- python比例图_python在地图上画比例的实例详解
现在用python画图已经难不倒一直跟小编学习的小伙伴们了,甚至有的小伙伴画图比小编还要厉害.为此小编还偷偷下了一番功夫,画图这种事情,细节上的完善肯定能让图片更加好看.所以小编知道大家会画地图,但是 ...
- python hook 微信_python实现微信跳一跳辅助工具步骤详解
说明 1.windows上安装安卓模拟器,安卓版本5.1以上 2.模拟器里下载安装最新的微信6.6.1 3.最好使用python2.7,python3的pyhook包有bug,解决比较麻烦 步骤 1. ...
- python分支语句_Python中分支语句与循环语句实例详解
前言 本篇博文介绍一下Python中的if条件语句.while循环语句.for in循环语句以及break和continue控制关键字. 分支的基本语法 if 条件表达式: 语句1 语句2 语句3 . ...
- python 切换环境_python多环境切换及pyenv使用过程详解
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash 下载如下报错,则安装nss ...
最新文章
- 5.IA-32寄存器
- ArcGIS + Oracle 创建企业级地理数据库
- 11个高效的VS调试技巧
- oracle升级后报 06502,Oracle数据库升级后报ORA-00704和ORA-39700错误
- docker compose详解
- jq 鼠标指向隐藏显示区域
- UI设计素材|愉快的万圣节的插图着陆页
- Bokeh 借力其他库
- block相对于delegate有哪些优缺点?
- 【赠书活动】赠送清华社的《好好学Java:从零基础到项目实战》
- java filter bme_节点红色,想截断BME280传感器的结果
- Ajax入门教程(内附源码实例)
- HTML实现简单水平导航栏
- project不显示里程碑标志_如何在项目管理中使用里程碑
- 2022年烟花爆竹经营单位安全管理人员培训试题及模拟考试
- mysql中db的名词解释_数据库常用名词解释大全
- Python软件编程等级考试二级——20220618
- 半双工通信java_Socket实现一个简单的半双工通信
- python菜根谭小猫_少儿编程国学动画经典案例_作者:李兴球
- 外贸外链发布渠道有哪些?