首页 文章

Perl,ClamAV,扫描流中的病毒

提问于
浏览
1

我有一个perl应用程序 . 我需要扫描一些文件以查找病毒 .

我可以使用ClamAV和模块File :: Scan :: ClamAV . 如果我需要扫描存储在磁盘上的某些文件或者将文件加载到内存(对于某个变量),它就可以工作 .

但我的应用程序没有完整的文件 . 它只有一个输入流(打开的套接字) . 它从此套接字读取并写入其他输出流 .

我可以通过ClamAV以某种方式传递流吗?喜欢将我的输入流转发给clamav并从中读取数据,但最后得到一些扫描结果?

1 回答

  • 0

    模块ClamAV::Client似乎提供了使用scan_stream method扫描流的方法 .

    以下是我认为这些文档在文档中混淆不清的方式:

    use ClamAV::Client;
    
    # Try using socket options from clamd.conf, or use default socket:
    my $scanner = ClamAV::Client->new();
    
    # Scan a stream, i.e. read from an I/O handle:
    my $result = $scanner->scan_stream($handle);
    
    # $result is the name of a virus signature, or undef
    die "infected" if $result;
    

    请注意,我还没有尝试过(还) .

相关问题