dig域名

简介:
#!/usr/bin/perl

#use warnings;
use strict;
use Parallel::ForkManager;
use JSON::XS;
use Net::DNS::Nslookup;
use Net::Nslookup;
use POSIX qw(strftime);
use Digest::MD5;

`[ -d ./logs ] || mkdir logs`;
my $listPath = "./domain-list";
my $dropPath = "./domain-drop";
my $logsPath = "./logs/";

our $dmList = {};
our $time   = time;

open IN, "$listPath";
open my $DRP, "> $dropPath";
my  $pm = Parallel::ForkManager->new(50);
while (<IN>){
  my $res = $_;
  my $rr  = '';
  chomp $res;
  $pm->start and next;
     my @fields = split(",", $res);
     if(defined $fields[0] && defined $fields[1]) {
       my $domain = "$fields[0].lv$fields[1].cloudglb.com";      
       $rr = $fields[1] eq 3 ? getArr($domain) : getCname($domain);   
       print "==[$rr]=$domain==\n";
       if($rr eq 0){
          syswrite $DRP ,"${domain}\n";
       } 
     }
  $pm->finish;
}
$pm->wait_all_children;
close IN;
close $DRP;

dmJson("$dropPath");
my $toPost  = JSON::XS->new->encode($dmList);
open  OUT, "> ${logsPath}${time}";
print OUT $toPost;
close OUT;

my $tokenUrl = token(); 
print "==$tokenUrl==\n";
#`wget --post-file=${logsPath}${time} http://****/${tokenUrl}/  -SO /server/script/logs/out-$time`;

sub dmJson() {
  my   $dmFile = shift;
  open RES, "$dmFile";
  while (<RES>) {
    my $dmName = $_;
    chomp $dmName;
    next  if $dmName eq "";
    $dmList->{"$dmName"} = "${time}";
  } 
  close RES;
  return $dmList;
}

sub getCname {
    my $dmName = shift;
    my @digRes = nslookup(host=>$dmName, type=>"CNAME");
       return @digRes ? 1 : 0; 
}

sub getArr {
    my $dmName = shift;
    my $rr = Net::DNS::Nslookup->get_ips($dmName);
       return $rr eq '' ? 0 : 1;
}

sub token(){
  my $day = strftime "%Y%m%d", localtime(time);
  my $md5 = Digest::MD5->new;
     $md5->add('hello world!!!!!');
  my $tmd5= $md5->hexdigest;
     $md5->add("$day$tmd5");
  return $md5->hexdigest;

}

本文转自cloves 51CTO博客,原文链接:http://blog.51cto.com/yeqing/1681655


相关文章
|
域名解析 网络协议 Linux
域名解析类型及dig,nslookup进行Dns解析过程查看
域名解析类型及dig,nslookup进行Dns解析过程查看
505 4
|
负载均衡 Perl 域名解析
如何使用dig命令挖掘域名解析信息
命令行工具 dig 是用于解析域名和故障排查的一个利器。 从主要功能上来说,dig 和 nslookup 之间差异不大,但 dig 更像一个加强版的 nslookup,可以查询到一些由域名服务器管理的信息,这在排查某些问题的时候非常有用。
查看域名服务器命令: $ dig -t NS xvideos.com
$ dig -t NS xvideos.com ; DiG 9.8.3-P1 -t NS xvideos.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER
5010 0
|
关系型数据库 MySQL
|
11月前
|
数据建模 网络安全
阿里云SSL证书不同类型DV、OV和EV如何收费?单域名和通配符SSL价格整理
阿里云SSL证书提供免费和收费版本,涵盖DV、OV、EV多种类型。收费证书品牌包括DigiCert、GlobalSign等,价格从238元/年起。免费SSL证书由Digicert提供,单域名有效3个月,每个实名主体每年可领取20个。具体价格和详情见阿里云SSL官方页面。