add expire,hosts on cli/cloudflare.php

This commit is contained in:
최준흠 2024-11-15 16:03:22 +09:00
parent e67e3a0567
commit 40700434ca
4 changed files with 67 additions and 1 deletions

View File

@ -17,6 +17,8 @@ $routes->group('cli', ['namespace' => 'App\Controllers\CLI'], function ($routes)
$routes->cli('reload/(:num)', 'Cloudflare::reload/$1');
$routes->cli('auditlog', 'Cloudflare::auditlog');
$routes->cli('auditlog/(:num)', 'Cloudflare::auditlog/$1');
$routes->cli('expire/(:any)', 'Cloudflare::expire/$1');
$routes->cli('hosts/(:any)', 'Cloudflare::hosts/$1');
});
});
$routes->get('/', 'Home::index');

View File

@ -7,6 +7,8 @@ use App\Entities\Cloudflare\AccountEntity;
use App\Entities\Cloudflare\AuthEntity;
use App\Entities\Cloudflare\ZoneEntity;
use App\Models\Cloudflare\AuthModel;
use App\Models\Cloudflare\RecordModel;
use App\Models\Cloudflare\ZoneModel;
use App\Services\Cloudflare\AccountService;
use App\Services\Cloudflare\AuditLogService;
use App\Services\Cloudflare\FirewallService;
@ -103,4 +105,53 @@ class Cloudflare extends BaseController
);
}
}
public function expire(string $domain): void
{
//Transaction Start
// $this->_db->transStart();
try {
$zone_model = model(ZoneModel::class);
$zone_model->where(['domain' => $domain]);
$zone_entity = $zone_model->getEntity();
$zone = new ZoneService();
$zone->expire($zone_entity);
log_message("notice", "Expire 작업을 완료하였습니다.");
// $this->_db->transCommit();
} catch (\Exception $e) {
//Transaction Rollback
// $this->_db->transRollback();
log_message(
"error",
"Expire 작업을 실패하였습니다.\n--------------\n" .
$e->getMessage() .
"\n--------------\n"
);
}
}
public function hosts(string $ip): void
{
//Transaction Start
// $this->_db->transStart();
try {
$record_model = model(RecordModel::class);
$record_model->where(['content' => $ip]);
$hosts = [];
foreach ($record_model->getEntitys() as $entity) {
$hosts[] = $entity->host;
}
echo implode("\n", $hosts);
log_message("notice", "Expire 작업을 완료하였습니다.");
// $this->_db->transCommit();
} catch (\Exception $e) {
//Transaction Rollback
// $this->_db->transRollback();
log_message(
"error",
"Expire 작업을 실패하였습니다.\n--------------\n" .
$e->getMessage() .
"\n--------------\n"
);
}
}
}

View File

@ -5,6 +5,7 @@ namespace App\Services\Cloudflare;
use App\Entities\Cloudflare\AccountEntity;
use App\Entities\Cloudflare\ZoneEntity;
use App\Models\Cloudflare\ZoneModel;
use Iodev\Whois\Factory;
class ZoneService extends CloudflareService
{
@ -158,6 +159,17 @@ class ZoneService extends CloudflareService
// log_message("debug", $this->getModel()->getLastQuery());
return $entity;
}
public function expire(ZoneEntity $entity)
{
$whois = Factory::get()->createWhois();
$info = $whois->loadDomainInfo($entity->getTitle());
print_r([
'Domain created' => date("Y-m-d", $info->creationDate),
'Domain expires' => date("Y-m-d", $info->expirationDate),
'Domain owner' => $info->owner,
]);
}
//Reload
public function reload(AccountEntity $parent_entity): array
{

View File

@ -15,6 +15,7 @@
"codeigniter4/framework": "^4.5",
"google/apiclient": "^2.15.0",
"guzzlehttp/guzzle": "^7.9",
"io-developer/php-whois": "4.0",
"phpoffice/phpspreadsheet": "^1.27",
"symfony/css-selector": "^7.1",
"symfony/dom-crawler": "^7.1",