Ubuntu VM (VirtualBox) 内の docker コンテナーで実行する ClamAv をセットアップしました。次の C# プログラム (Windows ホストから実行) を作成し、ホスト Windows から 192.168.0.103:3310 (ゲスト Ububtu の ClamAv) にアクセスできるため、Windows マシンのローカル ファイルを正常にスキャンできます (SendAndScanFileAsync)。
ScanFileOnServerAsync メソッドを使用して Linux サーバーのダウンロード フォルダーにあるファイルをスキャンしたいのですが、次のコードで Linux パスを指定する方法がわからないため実行できません。助けてください。
namespace ClamAvDemo
{
class Program
{
static void Main(string[] args)
{
var clam = new ClamClient("192.168.0.103", 3310);
var scanResult = clam.ScanFileOnServerAsync("Downloads"); // Downloads is a folder in Linux Server running as a VM
switch (scanResult.Result.Result)
{
case ClamScanResults.Clean:
Console.WriteLine("The file is clean!");
break;
case ClamScanResults.VirusDetected:
Console.WriteLine("Virus Found!");
Console.WriteLine("Virus name: {0}", scanResult.Result.InfectedFiles.First().VirusName);
break;
case ClamScanResults.Error:
Console.WriteLine("Woah an error occured! Error: {0}", scanResult.Result.RawResult);
break;
}
}
}
}
スキャンする Linux サーバー パス: /home/{user}/Downloads
指定したパス形式が何であれ、常にこのエラーが発生します-「ダウンロード: lstat() に失敗しました: そのようなファイルまたはディレクトリはありません。エラー」