Ошибка операции сокета - SOCKET_ECONNREFUSED - ClamAV Laravel - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь создать систему проверки, чтобы проверить, защищен ли загруженный файл, и я использую ClamAV, но не работает (Wampserver64) : (

Дайте мне эту ошибку:

Операция с сокетом завершилась неудачно: не удалось установить соединение, поскольку целевой компьютер явно отказал в этом. (SOCKET_ECONNREFUSED). Исключение (10061)

Мой код:

// CLAMAV VERFICATION
$validator = \Validator::make($request->all(), [
           'file' => 'clamav',
]);

if ($validator->fails()) {
   return response()->json([
          'title' => trans('lang.OOPS'),
          'html' => $validator->errors()->all(),
          'type_is' => 'swal',
          'status' => 'error'
   ]); 
}

Я использую этот пакет: https://github.com/sunspikes/clamav-validator

Надеюсь на помощь, Спасибо :)

1 Ответ

0 голосов
/ 05 февраля 2019

вам понадобится clamd для этого скрипта.Там даже есть версия для Windows: https://www.clamav.net/documentation (не знал, что).тем не менее, демон и / или сокет могут отсутствовать в Windows.с shell_exec() вы можете использовать любой сканер, который запускается с CLI ... потому что этот скрипт написан для Linux.это документация четко гласит:

По умолчанию пакет будет пытаться подключить демон clamav через файл сокета по умолчанию (/var/run/clamav/clamd.ctl) и в случае неудачи попытаетсяпорт tcp (127.0.0.1:3310)

Но вы можете установить переменные окружения CLAMAV_UNIX_SOCKET (путь к сокету) или CLAMAV_LOCAL_TCP_SOCKET (host:port), чтобы переопределить это.


лучший вариант, доступный в Windows, может быть:

$stdOut = shell_exec("C:\...\clamscan.exe C:\...\filename.zip");

, если не существует CLAMAV_LOCAL_TCP_SOCKET :3310, к которому он может подключиться

..потому что CLAMAV_UNIX_SOCKET там не будет доступно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...