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}
".format(cd.contscan_file(self.file))
elif self.scan_type=="multiscan_file":
self.scanresult="{0}
".format(cd.multiscan_file(self.file))
elif self.scan_type=="scan_file":
self.scanresult="{0}
".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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.