#!/usr/bin/perl use strict; use CGI; use IO::Socket::INET; # CONFIG OPTIONS: my $irc_server="irc.somewhere.net"; my $server_port="6667"; my $nick=sprintf("MSG-%05d",rand(100000)); my $channel="chat"; my $s=IO::Socket::INET->new( PeerAddr=>$irc_server, PeerPort=>$server_port, Timeout=>1); my $q = new CGI; my $text = $q->param('Text'); # connected to server ($s)?(print ""):(print $q->redirect('https://example.net/test/err.html') and exit); # sending nickname $s->print("user $nick B C D\r\n"); $s->print("nick $nick\r\n"); # join to channel $s->print("JOIN #$channel\r\n"); # submit message $s->print("PRIVMSG #$channel :$text\r\n"); # quit from channel $s->print("QUIT\n"); die (print $q->redirect('https://example.net/test/err.html')) unless $s; while (<$s>) { chomp; # response to server if send us PING request $s->print("PONG :$1\r\n") && print STDERR "pong $1...\n" if /^PING :(.*?)/; } # disconnect from server $s->print("DISCONNECT\r\n"); ($s->close)?(print $q->redirect('https://example.net/test/ok.html')):(print $q->redirect('https://example.net/test/err.html'));