作者 刘锟

update

@@ -2,12 +2,12 @@ @@ -2,12 +2,12 @@
2 2
3 namespace App\Console\Commands\Domain; 3 namespace App\Console\Commands\Domain;
4 4
  5 +use App\Models\Devops\ServerConfig;
5 use App\Models\Devops\ServersIp; 6 use App\Models\Devops\ServersIp;
6 use App\Models\Domain\DomainInfo; 7 use App\Models\Domain\DomainInfo;
7 use App\Models\Project\Project; 8 use App\Models\Project\Project;
8 use App\Services\BatchExportService; 9 use App\Services\BatchExportService;
9 use Illuminate\Console\Command; 10 use Illuminate\Console\Command;
10 -use Symfony\Component\Process\Process;  
11 11
12 class ProjectDomainCheck extends Command 12 class ProjectDomainCheck extends Command
13 { 13 {
@@ -16,7 +16,7 @@ class ProjectDomainCheck extends Command @@ -16,7 +16,7 @@ class ProjectDomainCheck extends Command
16 16
17 public function handle() 17 public function handle()
18 { 18 {
19 - $map = ['项目id', '名称', '域名', '项目所选IP']; 19 + $map = ['项目id', '名称', '域名', '项目所选IP', '项目实际IP'];
20 20
21 //获取所有恢复项目 21 //获取所有恢复项目
22 $domain_model = new DomainInfo(); 22 $domain_model = new DomainInfo();
@@ -28,16 +28,26 @@ class ProjectDomainCheck extends Command @@ -28,16 +28,26 @@ class ProjectDomainCheck extends Command
28 28
29 foreach ($domain_list as $value) { 29 foreach ($domain_list as $value) {
30 $project_info = $project_model->read(['id' => $value->project_id], ['id', 'serve_id', 'company']); 30 $project_info = $project_model->read(['id' => $value->project_id], ['id', 'serve_id', 'company']);
31 - $server_ip_info = $server_ip_model->read(['id' => $project_info['serve_id']], ['ip', 'domain']); 31 + $server_ip_info = $server_ip_model->read(['id' => $project_info['serve_id']], ['servers_id', 'ip', 'domain']);
32 32
33 - if (check_domain_record($value->domain, $server_ip_info)) { 33 + if ($server_ip_info['servers_id'] == ServerConfig::SELF_SITE_ID) {
  34 + //过滤自建站项目
  35 + continue;
  36 + }
  37 +
  38 + //获取域名解析
  39 + $records = dns_get_record($value->domain, DNS_A);
  40 + $record_ip = $records[0]['ip'] ?? '';
  41 + $record_domain = $records[0]['host'] ?? '';
  42 + if ($record_domain == $server_ip_info['domain'] || $record_ip == $server_ip_info['ip']) {
34 continue; 43 continue;
35 } else { 44 } else {
36 $data[] = [ 45 $data[] = [
37 $value->project_id, 46 $value->project_id,
38 $project_info['company'], 47 $project_info['company'],
39 $value->domain, 48 $value->domain,
40 - $server_ip_info['ip'] 49 + $server_ip_info['ip'],
  50 + $record_ip,
41 ]; 51 ];
42 } 52 }
43 } 53 }