您好,登錄后才能下訂單哦!
小編給大家分享一下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怎么實現集中式的病毒掃描功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。