|
|
|
<?php
|
|
|
|
|
|
|
|
require_once __DIR__ . '/../lib/twig.php';
|
|
|
|
|
|
|
|
$utils = new App\Utils;
|
|
|
|
|
|
|
|
$all = false;
|
|
|
|
$data = "";
|
|
|
|
$domain = "";
|
|
|
|
$uri = "";
|
|
|
|
$result = [];
|
|
|
|
$error = "";
|
|
|
|
|
|
|
|
if (isset($_POST["all"]) || isset($_GET["all"]))
|
|
|
|
$all = true;
|
|
|
|
|
|
|
|
// Get request data
|
|
|
|
if (isset($query) && !empty($query)) {
|
|
|
|
$data = $query;
|
|
|
|
} else if (isset($_POST["q"])) {
|
|
|
|
$data = $_POST["q"];
|
|
|
|
}
|
|
|
|
|
|
|
|
// Check if request contain uri path
|
|
|
|
if (strpos($data, "/")) {
|
|
|
|
$a = explode ("/", $data, 2);
|
|
|
|
$domain = htmlspecialchars($a[0]);
|
|
|
|
$uri = $a[1];
|
|
|
|
} else {
|
|
|
|
$domain = htmlspecialchars($data);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Check domain name
|
|
|
|
if(!empty($domain) && !$utils->isValidDomain($domain, $error)) {
|
|
|
|
$domain = "";
|
|
|
|
$result["error"] = 'Not valid query: ' . $error;
|
|
|
|
}
|
|
|
|
else if(!empty($domain) && $utils->isValidDomain($domain, $error)) {
|
|
|
|
if ((new App\Utils)->isPunycodeDomain($domain)) {
|
|
|
|
$domain = idn_to_utf8($domain, 0, INTL_IDNA_VARIANT_UTS46);
|
|
|
|
}
|
|
|
|
|
|
|
|
$pdo = (new App\DB($options))->pdo;
|
|
|
|
|
|
|
|
$STH = $pdo->prepare('SELECT `host`, `base64`, `base32`, `add_date`, `last_seen`, `blacklisted` FROM `hosts` WHERE `host` = ? LIMIT 1');
|
|
|
|
$STH->execute([$domain]);
|
|
|
|
$row = $STH->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
|
|
|
|
if (empty($row)) {
|
|
|
|
$result["error"] = "No such host is found";
|
|
|
|
} else {
|
|
|
|
$result = array_merge($result, $row[0]);
|
|
|
|
if (!empty($uri)) {
|
|
|
|
$result['uri'] = $uri;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$template = $twig->load('jump.twig');
|
|
|
|
echo $template->render(['domain' => $domain, 'result' => $result, 'all' => $all]);
|