All pastes #215528 Raw Edit

perl

public text v1 · immutable
#215528 ·published 2006-10-22 17:50 UTC
rendered paste body
rcrsvs@praxis /home/rcrsvs $ sudo /usr/bin/spoofd.pl
Dealing with ...
couldn't create TCP socket: Invalid argument at /usr/lib/perl5/vendor_perl/5.8.8/i686-linux/Net/DNS/Nameserver.pm line 139
        Net::DNS::Nameserver::new('Net::DNS::Nameserver', 'LocalPort', 53, 'ReplyHandler', 'CODE(0x8142c60)', 'Verbose', 1) called at /usr/bin/spoofd.pl line 34couldn't create nameserver object
rcrsvs@praxis /home/rcrsvs $ cat /usr/bin/spoofd.pl
#!/usr/bin/perl -Tw
# airsnarf_dns.pl
# Net::DNS::Nameserver with localhost & localhost.localdomain returns
# mostly ripped from some Net::DNS:Nameserver example via Google

use Net::DNS;
use Net::DNS::Nameserver;
use strict;


sub reply_handler {
          my ($qname, $qclass, $qtype) = @_;
          my ($rcode, @ans, @auth, @add);

          if (($qname eq "localhost") || ($qname eq "localhost.localdomain")) {
        my ($ttl, $rdata) = (3600, "127.0.0.1");
        push@ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata");
        $rcode = "NOERROR";
        }
          elsif ($qtype eq "A") {
                my ($ttl, $rdata) = (3600, "192.168.1.254");
                push @ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata");
                $rcode = "NOERROR";
          }
          else {
                $rcode = "NXDOMAIN";
          }


          return ($rcode, \@ans, \@auth, \@add);
}


my $ns = Net::DNS::Nameserver->new(
          LocalPort        => 53,
          ReplyHandler => \&reply_handler,
          Verbose          => 1
);


if ($ns) {
          $ns->main_loop;
}
else {
          die "couldn't create nameserver object\n";
}