mirror of https://github.com/PurpleI2P/regi2p.git
Domain registry project
http://reg.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.6 KiB
50 lines
1.6 KiB
<?php |
|
|
|
require_once __DIR__ . '/../config.php'; |
|
|
|
$all = false; |
|
$data = []; |
|
|
|
$pdo = (new App\DB($options))->pdo; |
|
|
|
header('Content-Type: application/json; charset=utf-8'); |
|
|
|
if (isset($_GET["all"])) |
|
$all = true; |
|
|
|
switch ($command) { |
|
case "all": |
|
$STH = $pdo->query ("SELECT `base32`, UNIX_TIMESTAMP(`last_seen`) as `last_seen` FROM `hosts` " . |
|
"WHERE `approved` = 1 AND `disabled` = 0" . |
|
($all ? " " : " AND `blacklisted` = 0 ")); |
|
$rows = $STH->fetchAll(PDO::FETCH_ASSOC); |
|
|
|
foreach($rows as $row) { |
|
$data[$row["base32"] . ".b32.i2p"] = $row["last_seen"]; |
|
} |
|
break; |
|
case "status": |
|
if (!$query || empty($query)) { |
|
$data = array_merge($data, ["status" => "error", "message" => "Empty query"]); |
|
break; |
|
} |
|
$q = htmlspecialchars($query); |
|
|
|
$STH = $pdo->prepare('SELECT `host` AS `hostname`, `base64`, `base32`, UNIX_TIMESTAMP(`last_seen`) as `last_seen` FROM `hosts` WHERE `host` = ? LIMIT 1'); |
|
$STH->execute([$q]); |
|
$row = $STH->fetch(PDO::FETCH_ASSOC); |
|
|
|
if (empty($row)) { |
|
$data = array_merge($data, ["status" => "error", "message" => "Not found"]); |
|
break; |
|
} else { |
|
if (!$row["last_seen"]) $row["last_seen"] = "Never"; |
|
$row["base32"] .= ".b32.i2p"; |
|
$data = array_merge($data, $row); |
|
} |
|
break; |
|
default: |
|
$data = array_merge($data, ["status" => "error", "message" => "Incorrect request"]); |
|
} |
|
|
|
exit(json_encode($data, JSON_PRETTY_PRINT));
|
|
|