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"; }