Bot-Cobalt
view release on metacpan or search on metacpan
lib/Bot/Cobalt/Plugin/Extras/DNS.pm view on Meta::CPAN
my ($self, $context, $channel, $host, $type) = @_;
$type = 'A' unless $type
and $type =~ /^(A|CNAME|NS|MX|PTR|TXT|AAAA|SRV|SOA)$/i;
$type = 'PTR' if ip_is_ipv4($host) or ip_is_ipv6($host);
logger->debug("issuing dns request: $host");
$poe_kernel->post( 'p_'. core()->get_plugin_alias($self),
'dns_issue_query',
$context, $channel, $host, $type
);
}
sub dns_issue_query {
my ($self, $kernel) = @_[OBJECT, KERNEL];
my ($context, $channel, $host, $type) = @_[ARG0 .. $#_];
my $resp = core()->resolver->resolve(
event => 'dns_resp_recv',
host => $host,
type => $type,
context => { Context => $context, Channel => $channel },
);
POE::Kernel->yield('dns_resp_recv', $resp) if $resp;
return 1
}
1;
__END__
=pod
=head1 NAME
Bot::Cobalt::Plugin::Extras::DNS - Issue DNS queries from IRC
=head1 SYNOPSIS
!dns www.cobaltirc.org
## Same as:
!nslookup www.cobaltirc.org
## Optionally specify a type:
!dns irc.cobaltirc.org aaaa
## Convert an IPv4 address to its hexadecimal representation:
!iptohex 127.0.0.1
## Reverse of above:
!hextoip 7f000001
=head1 DESCRIPTION
A Cobalt plugin providing DNS query results on IRC.
Uses L<POE::Component::Client::DNS> for asynchronous lookups.
Also performs some rudimentary address manipulation.
=head1 AUTHOR
Jon Portnoy <avenj@cobaltirc.org>
=cut
( run in 0.505 second using v1.01-cache-2.11-cpan-39bf76dae61 )