tiger1974

perl project #1 - DNS Lookup

Apr 30th, 2012
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.57 KB | None | 0 0
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. print "content-type: text/html \n\n";
  5. use Net::DNS;
  6. use CGI;
  7. my $q = CGI->new;
  8. my $res = Net::DNS::Resolver->new;
  9. my $n1 = "\n";
  10. print $q->start_html(-lang=>'en-US',-title=>"DNS Lookup"),
  11.         $q->start_div(-align=>'center'),
  12.         $q->start_form,
  13.         $q->textfield(-name=>'domain',-value=>''),$n1,
  14.         $q->submit(-name=>'submit',-value=>'submit'),$n1,
  15.         $q->defaults('Reset'),$n1,
  16.         $q->end_form,$n1,
  17.         $q->end_div;
  18.  
  19. my $name = $q->param('domain');
  20. my @dnschck;
  21. sub chckname {
  22.         my $query1 = $res->search($name);
  23.         my $query2 = $res->query($name, "NS");
  24.         my $query3 = $res->query($name, "SOA");
  25.         my $query4 = $res->query($name, "TXT");
  26.         my @mx = mx($res, $name);
  27.         if ($query1) {
  28.                 foreach my $rr ($query1->answer) {
  29.                         print $rr->address, $n1;
  30.                         }
  31.                 }
  32.         if ($query2) {
  33.                 foreach my $rr (grep { $_->type eq  'NS' } $query2->answer) {
  34.                         print $rr->nsdname, $n1;
  35.                         }
  36.                 }
  37.         if ($query3) {
  38.                 ($query3->answer)[0]->print;
  39.                 }
  40.         if ($query4) {
  41.                 ($query4->answer)[0]->print;
  42.                 }
  43.         if (@mx) {
  44.                 foreach my $rr (@mx) {
  45.                         print $rr->preference, " ", $rr->exchange, $n1;
  46.                         }
  47.                 }
  48.         else
  49.         { warn "Query failed: ", $res->errorstring, "\n"; }
  50. }
  51. chckname;
Advertisement
Add Comment
Please, Sign In to add comment