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


相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
负载均衡 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
4718 0
|
关系型数据库 MySQL
|
21天前
|
存储 缓存 负载均衡
阿里云DNS常见问题之域名DNS跳转有问题如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集: