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}
".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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기