Browse Source

add marking disabled for long time domains, add periodic checks for them

Signed-off-by: r4sas <r4sas@i2pmail.org>
master
R4SAS 3 years ago
parent
commit
ee04d00c70
Signed by: r4sas
GPG Key ID: 66F6C87B98EBCFE2
  1. 1
      README.md
  2. 7
      checker.php
  3. 2
      config.php.dist
  4. 34
      export.php

1
README.md

@ -10,6 +10,7 @@ Requirements @@ -10,6 +10,7 @@ Requirements
* i2pd with enabled BOB protocol
* `verifyhost` binary built inside i2pd-tools project folder
* PHP and php-fpm 7.2+
* php-intl package on PHP 7.4+ (php7.4-intl as example on Debian with PHP 7.4)
* Composer
* Corntab (for jobs)

7
checker.php

@ -14,7 +14,12 @@ $pdo = (new DB($options))->pdo; @@ -14,7 +14,12 @@ $pdo = (new DB($options))->pdo;
$results = [];
$STH = $pdo->query("SELECT `host`, `base32` FROM `hosts`");
/* Fetch hosts for check from database */
if ((($options['fullhour'] >= 0) && ($options['fullhour'] <= 23)) && date('H') == $options['fullhour']) { // check all hosts at full check hour
$STH = $pdo->query("SELECT `host`, `base32` FROM `hosts`");
} else {
$STH = $pdo->query("SELECT `host`, `base32` FROM `hosts` WHERE `disabled` = '0'");
}
$hosts = $STH->fetchAll(PDO::FETCH_KEY_PAIR);
/* Start temporary BOB tunnel for checking */

2
config.php.dist

@ -31,4 +31,6 @@ $options = [ @@ -31,4 +31,6 @@ $options = [
'newdays' => 7, // assume host as new for that amout of days
'delnewdays' => 3, // if new host not seen more than X days, disable it and disapprove
'delolddays' => 30, // same as above, but for old hosts
'fullhour' => 8, // make hosts full-check at that hour (0-23). Usage of out-of-range value or at other hours, checker will validate only enabled domains.
];

34
export.php

@ -8,16 +8,16 @@ date_default_timezone_set ('UTC'); @@ -8,16 +8,16 @@ date_default_timezone_set ('UTC');
$pdo = (new App\DB($options))->pdo;
$util = new App\Utils;
$STH = $pdo->query ("SELECT `host`, `base64`, `base32`, `add_date`, `last_seen`, `approved`, `initial` FROM hosts");
$STH = $pdo->query ("SELECT `host`, `base64`, `base32`, `add_date`, `last_seen`, `approved`, `initial`, `disabled` FROM hosts");
$hosts = $STH->fetchAll(PDO::FETCH_ASSOC);
// for automatic approving
$approffs = date ("Y-m-d H:i:s", strtotime ("-" . $options["approvedelay"] . " hour")); // approval offset
$apprseen = date ("Y-m-d H:i:s", strtotime ("-" . $options["approveseen"] . " hour")); // approval maxseen offset
$newregoffs = date ("Y-m-d H:i:s", strtotime ("-" . $options["newdays"] . " day"));
$newseenlim = date ("Y-m-d H:i:s", strtotime ("-" . $options["delnewdays"] . " day"));
$oldseenlim = date ("Y-m-d H:i:s", strtotime ("-" . $options["delolddays"] . " day"));
$newregoffs = date ("Y-m-d H:i:s", strtotime ("-" . $options["newdays"] . " day")); // 7
$newseenlim = date ("Y-m-d H:i:s", strtotime ("-" . $options["delnewdays"] . " day")); // 3
$oldseenlim = date ("Y-m-d H:i:s", strtotime ("-" . $options["delolddays"] . " day")); // 30
$export_full = $export_live = $export_init = [];
$export_addr_full = $export_addr_live = $export_addr_init = [];
@ -31,10 +31,13 @@ foreach ($hosts as $host) @@ -31,10 +31,13 @@ foreach ($hosts as $host)
array_push($export_addr_full, $domain . "," . $host["base32"]);
if (
($options["approval"] == false || $host["approved"] == 1) && (
($host["add_date"] > $newregoffs && $host["last_seen"] > $newseenlim) ||
($host["add_date"] < $newregoffs && $host["last_seen"] > $oldseenlim)
)
($options["approval"] == false || $host["approved"] == 1) &&
($host["disabled"] == 0 ||
(
($host["add_date"] > $newregoffs && $host["last_seen"] > $newseenlim) ||
($host["add_date"] < $newregoffs && $host["last_seen"] > $oldseenlim)
)
)
)
{
array_push($export_live, $domain . "=" . $host["base64"]);
@ -45,6 +48,11 @@ foreach ($hosts as $host) @@ -45,6 +48,11 @@ foreach ($hosts as $host)
array_push($export_init, $domain . "=" . $host["base64"]);
array_push($export_addr_init, $domain . "," . $host["base32"]);
}
if ($host["disabled"] == 1)
{
$pdo->exec ("UPDATE `hosts` SET `disabled` = 0 WHERE `host` = '" . $host["host"] . "'");
}
}
else if (
$host["approved"] == 0 && (
@ -56,6 +64,16 @@ foreach ($hosts as $host) @@ -56,6 +64,16 @@ foreach ($hosts as $host)
array_push($export_live, $domain . "=" . $host["base64"]);
array_push($export_addr_live, $domain . "," . $host["base32"]);
}
if (
$host["disabled"] == 0 &&
($host["add_date"] > $newregoffs && $host["last_seen"] < $newseenlim) ||
($host["add_date"] < $newregoffs && $host["last_seen"] < $oldseenlim)
)
{
$pdo->exec ("UPDATE `hosts` SET `disabled` = 1 WHERE `host` = '" . $host["host"] . "'");
}
}
$STH = null;

Loading…
Cancel
Save