如何在Java中上载时使用防病毒软件扫描文件?
我正在开发一个需要上传文件的应用程序,它还需要 使用服务器上可用的防病毒软件扫描文件 我听说Symantec为应用服务器提供了ABTAPI 情况是,我需要在不同的地方部署应用程序 未来所以,我想放置一个配置文件 我将从何处获取可用的防病毒软件及其路径 我想在服务器上使用任何可用的防病毒软件,然后 使用命令行,我想传回文件名和结果 我对传递文件和检索结果感到困惑如何在Java中上载时使用防病毒软件扫描文件?,java,file-upload,Java,File Upload,我正在开发一个需要上传文件的应用程序,它还需要 使用服务器上可用的防病毒软件扫描文件 我听说Symantec为应用服务器提供了ABTAPI 情况是,我需要在不同的地方部署应用程序 未来所以,我想放置一个配置文件 我将从何处获取可用的防病毒软件及其路径 我想在服务器上使用任何可用的防病毒软件,然后 使用命令行,我想传回文件名和结果 我对传递文件和检索结果感到困惑 有可能吗?我刚在谷歌上搜索到一篇有趣的文章,请看一看 要在Java中实现病毒文件扫描,需要使用第三方软件包。在本文中,我将使用Syman
有可能吗?我刚在谷歌上搜索到一篇有趣的文章,请看一看 要在Java中实现病毒文件扫描,需要使用第三方软件包。在本文中,我将使用Symantec扫描引擎(SSE)包,它随Java API一起提供。这个包是一个用作TCP/IP服务器的应用程序,它有一个编程接口,使Java应用程序能够集成对内容扫描技术的支持。在本文中,我使用了Symantec Scan Engine 5.1,它可以在Unix或Windows上安装 快速参考:
public void scanFile(byte[] fileBytes, String fileName)
throws IOException, Exception {
if (scan) {
AVClient avc = new AVClient(avServer, avPort, avMode);
if (avc.scanfile(fileName, fileBytes) == -1) {
throw new VirusException("WARNING: A virus was detected in
your attachment: " + fileName + "<br>Please scan
your system with the latest antivirus software with
updated virus definitions and try again.");
}
}
}
使用以下代码
String[] commands = new String[5];
commands[0] = "cmd";
commands[1] = "/c";
commands[2] = "C:\\Program Files\\AVG\\AVG10\\avgscanx.exe";
commands[3] = "/scan=" + filename;
commands[4] = "/report=" + virusoutput;
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(commands);
通讯线路对您来说是更好的选择。然后阅读日志文件以解决问题。使用Java中的VirusTotal Public API V2.0实现并由编写
可访问
它具有丰富的功能,可以扫描文件、URL、域、IP地址,并获得有关扫描的详细报告。
使用此API,您的文件将被56个防病毒引擎扫描。而且所有防病毒引擎都在virustotal云中运行,因此您无需维护或运行任何防病毒引擎。
此API的一个重要特性是,它具有接受java.io.FileInputStream或java.io.File作为参数的方法。
所有API功能都用示例进行了清楚的说明。
使用此api的步骤
步骤1:在(谷歌子公司VirusTotal)中创建一个帐户并获取API密钥
步骤2:访问并下载所需的jar文件
步骤3:只需使用API提供的方法。
您可以使用
提供的示例 Java:
Go:通常,您的问题是:“是否可以使用java运行带参数的命令行并返回输出?”我说的对吗?您也可以使用VirusTotal.com API…也许所有大写字母都可以吸引一些额外的注意,但这种注意也会与消极态度结合在一起…嗨,JJ。。谢谢,但我不想使用“Symantec”API,正如我在帖子中提到的scanrio:)@Jigar Joshi您提供的链接不再有效,请发布完整的代码好吗?另外,请告诉我您的ClamavJava客户端来自何处,谢谢you@Maurice这是9年前的答案,可能不再有效。今天晚些时候让我更新一下。我使用了类似的方法。在LLINX中如何?@HardikMishra在我搜索same@PatelRomil当前位置我们没有找到完美的解决方案。这就是答案。virustotal是一家谷歌公司。访问获取详细信息而不知道所有这些你怎么能说它是垃圾邮件。
String[] commands = new String[5];
commands[0] = "cmd";
commands[1] = "/c";
commands[2] = "C:\\Program Files\\AVG\\AVG10\\avgscanx.exe";
commands[3] = "/scan=" + filename;
commands[4] = "/report=" + virusoutput;
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(commands);