/** * @param string $url * @param string $key * @return bool|null */ function localSearchUrl($url, $key) { $safeBrowsing = new SafeBrowsingClient($key); //Creating hashes by url $hashes = $safeBrowsing->getHashesByUrl($url); $localDbFile = 'hosts_prefixes.json'; if (!is_file($localDbFile)) { exit('File "' . $localDbFile . '" not found'); } $data = file_get_contents($localDbFile); $localHashPrefixes = json_decode($data, true); foreach ($hashes as $hash) { foreach ($localHashPrefixes as $shavar) { foreach ($shavar as $chunkNum => $chunk) { foreach ($chunk as $hashPrefix) { if ($hash['prefix'] === $hashPrefix) { //Found prefix in local DB echo '<div class="alert alert-info"> Префикс хеша найден в локальной БД. Ищем в списке опасных сайтов... </div>'; //Check full hash if ($safeBrowsing->searchUrl($url)) { return true; } } } } } } return false; }
<h3>Проверить адреса</h3> <?php try { $settings = (require_once '../settings.php'); if (!isset($settings["safebrowsing"]["key"]) || !$settings["safebrowsing"]["key"]) { throw new SafeBrowsingException('Empty Safe Browsing key'); } if (isset($_GET['url']) && $_GET['url']) { $url = $_GET['url']; $key = $settings["safebrowsing"]["key"]; $safeBrowsing = new SafeBrowsingClient($key); /** * Using "gethash" request */ if ($safeBrowsing->searchUrl($url)) { ?> <div class="alert alert-danger">Найден полный хеш для "<?php echo htmlentities($url); ?> " в списке опасных сайтов</div> <?php } else { ?> <div class="alert alert-success"><?php echo htmlentities($url); ?> - не найден в списке опасных сайтов</div> <?php } }