debian man page for poe::component::irc::cookbook::resolver

Query: poe::component::irc::cookbook::resolver

OS: debian

Section: 3pm

Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar

POE::Component::IRC::Cookbook::Resolver(3pm)		User Contributed Perl Documentation	      POE::Component::IRC::Cookbook::Resolver(3pm)

NAME
POE::Component::IRC::Cookbook::Resolver - A bot that can resolve DNS records
SYNOPSIS
This bot uses POE::Component::Client::DNS to DNS records for channel members.
DESCRIPTION
#!/usr/bin/env perl use strict; use warnings; use IRC::Utils qw(parse_user); use POE; use POE::Component::Client::DNS; use POE::Component::IRC::State; use POE::Component::IRC::Plugin::AutoJoin; use POE::Component::IRC::Plugin::BotCommand; POE::Session->create( package_states => [ main => [ qw(_start irc_botcmd_resolve dns_response) ] ], ); $poe_kernel->run(); sub _start { my $heap = $_[HEAP]; my $irc = POE::Component::IRC::State->spawn( Nick => 'resolver_bot', Server => 'irc.freenode.net', ); $heap->{irc} = $irc; $irc->plugin_add('AutoJoin', POE::Component::IRC::Plugin::AutoJoin->new( Channels => [ '#test_channel1', '#test_channel2' ] )); $irc->plugin_add('BotCommand', POE::Component::IRC::Plugin::BotCommand->new( Commands => { resolve => 'Usage: resolve <host>' } )); $heap->{dns} = POE::Component::Client::DNS->spawn(); $irc->yield(register => 'botcmd_resolve'); $irc->yield('connect'); return; } sub irc_botcmd_resolve { my $dns = $_[HEAP]->{dns}; my $nick = parse_user( $_[ARG0] ); my ($channel, $host) = @_[ARG1, ARG2]; my $res = $dns->resolve( event => 'dns_response', host => $host, context => { channel => $channel, nick => $nick, }, ); $poe_kernel->yield(dns_response => $res) if $res; return; } sub dns_response { my $irc = $_[HEAP]->{irc}; my $res = $_[ARG0]; my @answers = $res->{response} ? map { $_->rdatastr } $res->{response}->answer() : (); $irc->yield( 'privmsg', $res->{context}->{channel}, $res->{context}->{nick} . (@answers ? ": @answers" : ': no answers for "' . $res->{host} . '"') ); return; }
AUTHOR
Hinrik Oern Sigur`sson, hinrik.sig@gmail.com perl v5.14.2 2011-12-07 POE::Component::IRC::Cookbook::Resolver(3pm)
Related Man Pages
poe::component::irc::plugin::botaddressed(3pm) - debian
poe::component::irc::plugin::bottraffic(3pm) - debian
poe::component::irc::plugin::ctcp(3pm) - debian
poe::component::irc::plugin::connector(3pm) - debian
poe::component::irc::plugin::console(3pm) - debian
Similar Topics in the Unix Linux Community
IRC Services 5.1.11 (Stable branch)
Solaris DNS Client For Microsoft DNS Server
IRC Services 5.1.12 (Stable branch)
IRC Services 5.1.13 (Stable branch)
How do I run a shell command in a while loop?