summaryrefslogtreecommitdiff
path: root/contrib/whoisd
diff options
context:
space:
mode:
authorepoch <epoch@hacking.allowed.org>2013-10-06 10:21:44 +0000
committerepoch <epoch@hacking.allowed.org>2013-10-06 10:21:44 +0000
commit1b53ae755a154e5d3adbcc66546eba63e0d6f178 (patch)
tree888d2a0cfacace95ac6f7457c3fbf579fc76f867 /contrib/whoisd
parenta4d5660b0cb7394f80634b51ca9f7ad8d833543a (diff)
downloadresdb-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-xcontrib/whoisd/whoisd.pl34
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`)) {