diff options
| author | epoch <epoch@hacking.allowed.org> | 2013-10-06 10:21:44 +0000 | 
|---|---|---|
| committer | epoch <epoch@hacking.allowed.org> | 2013-10-06 10:21:44 +0000 | 
| commit | 1b53ae755a154e5d3adbcc66546eba63e0d6f178 (patch) | |
| tree | 888d2a0cfacace95ac6f7457c3fbf579fc76f867 /contrib/whoisd | |
| parent | a4d5660b0cb7394f80634b51ca9f7ad8d833543a (diff) | |
| download | resdb-1b53ae755a154e5d3adbcc66546eba63e0d6f178.tar.gz resdb-1b53ae755a154e5d3adbcc66546eba63e0d6f178.zip | |
whoisd... don't remember.
added ipv6 address for my nameserver
does anyone still use bind_tld_zonefile?
upgraded bind_tld_zonefile.sh to use ipv6 in one place and rDNS in another
Diffstat (limited to 'contrib/whoisd')
| -rwxr-xr-x | contrib/whoisd/whoisd.pl | 34 | 
1 files changed, 24 insertions, 10 deletions
| diff --git a/contrib/whoisd/whoisd.pl b/contrib/whoisd/whoisd.pl index 5b9aa54..f0ea59d 100755 --- a/contrib/whoisd/whoisd.pl +++ b/contrib/whoisd/whoisd.pl @@ -8,6 +8,7 @@ use strict;  my $RESDB = "/services/resdb/resdb"; +my $HACK=0;  my $QUERY=<stdin>;  $QUERY =~ s/\r\n//g;  my $out; @@ -16,6 +17,15 @@ my $value;  my @parts;  my $i; +if($QUERY eq "!!\n") { + $QUERY=<stdin>; + $QUERY =~ s/^!r(.+?)[\/,].*$/\1/; + printf "A500\n"; #fake this I guess. Does it even use that number for anything? + printf "%% Looks like you're trying -A on a BSDian traceroute with this server.\n"; + printf "%% support will come soon for that.\n"; + $HACK=1; +} +  # ASNs  if($QUERY =~ m/^AS(.+?)$/) {   printf "%% AS section for %s\n", $QUERY; @@ -39,12 +49,12 @@ if($QUERY =~ m/^AS(.+?)$/) {  # IPv4 addresses  if($QUERY =~ m/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/) { - printf "%% IP section for %s\n", $QUERY; + printf "%% IP section for %s", $QUERY unless $HACK;   chdir("$RESDB/db/ip");   @parts=split(/\./,$QUERY);   for($i=0;$i<scalar(@parts)-1;$i++) { -  if(!chdir(sprintf("%02x",$parts[$i]))) { -   printf "%-20s %s\n", "error" . ":", "IP not found."; +  if(!chdir(sprintf("%02X",$parts[$i]))) { +   printf "%-20s %s\n", "error" . ":", "IP not found." unless $HACK;     exit;    }   } @@ -52,7 +62,7 @@ if($QUERY =~ m/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-    $out = $_;    $out =~ s/^\.\///g;    ($title, $value) = split(/:/,$out); -  printf "%-20s %s\n", $title . ":", $value; +  printf "%-20s %s\n", $title . ":", $value unless $HACK;    if($title eq "owner") {     $QUERY = $value;    } @@ -65,8 +75,11 @@ if($QUERY =~ m/\./) {   printf "%% domain section for %s\n", $QUERY;   @parts=split(/\./,$QUERY);   chdir("$RESDB/db/dom"); - for($i=scalar(@parts)-1;$i>=0;$i--) { -  chdir($parts[$i]); + for($i=scalar(@parts)-1;$i>scalar(@parts)-3;$i--) { +  if(!chdir($parts[$i])) { +   printf "%-20s %s", "warning" . ":", "domain not found."; +   exit; +  }   }   foreach(split(/\n/,`grep '' -r .`)) {    $out = $_; @@ -81,7 +94,7 @@ if($QUERY =~ m/\./) {  }  # default to assuming it is a name. -printf "%% user section for %s\n", $QUERY; +printf "%% user section for %s\n", $QUERY unless $HACK;  chdir("$RESDB/db/usr");  if(chdir($QUERY)) { @@ -90,16 +103,17 @@ if(chdir($QUERY)) {    $out =~ s/^\.\///g;    $out =~ m/^(.+?):(.+?)$/;    ($title, $value) = ($1, $2); -  printf "%-20s %s\n", $title . ":", $value; +  printf "%-20s %s\n", $title . ":", $value unless $HACK;   }  } else { - printf "%-20s missing db/usr file.\n", "warning" . ":"; + printf "%-20s missing db/usr file.\n", "warning" . ":" unless $HACK;  }  chdir("$RESDB/db/as");  foreach(split(/\n/,`grep '^$QUERY\$' */owner | cut -d/ -f1`)) {   $out = $_;   $out =~ s/\n//g; - printf "%-20s %s\n", "ASN" . ":", $out; + printf "%-20s AS%s\n", "origin" . ":", $out if $HACK; + printf "%-20s AS%s\n", "origin" . ":", $out unless $HACK;  }  foreach(split(/\n/,`grep -i -e "^$QUERY\$" "$RESDB/db/dom"/*/*/owner`)) { | 
