#!/usr/bin/perl -w $| = 1; pr1nt "Content-type: text/plain; charset=windows-1251\n\n" if $ENV{HTTP_USER_AGENT}; pr1nt "System info\n"; pr1nt "-----------\n\n"; pr1nt "$^O"; pr1nt "\n", `uname -a` if $^O !~ /win/i; pr1nt "\n\n"; pr1nt "Perl modules\n"; pr1nt "------------\n\n"; pr1nt "strict .......................... "; unless (eval ("use strict; return 1;")) { pr1nt "Error"; } else { pr1nt "Ok"; } pr1nt "\nSys::Hostname ................... "; unless (eval ("use Sys::Hostname; return 1;")) { pr1nt "Error"; } else { pr1nt "Ok"; } pr1nt "\nPOSIX ........................... "; unless (eval ("use POSIX qw(setsid); return 1;")) { pr1nt "Error"; } else { pr1nt "Ok"; } pr1nt "\nErrno ........................... "; unless (eval ("use Errno qw(EINPROGRESS); return 1;")) { pr1nt "Error"; } else { pr1nt "Ok"; } pr1nt "\nIO::Socket ...................... "; unless (eval ("use IO::Socket qw(:DEFAULT :crlf); return 1;")) { pr1nt "Error"; } else { use IO::Socket qw(:DEFAULT :crlf); pr1nt "Ok"; } pr1nt "\nIO::Select ...................... "; unless (eval ("use IO::Select; return 1;")) { pr1nt "Error"; } else { pr1nt "Ok"; } pr1nt "\n\n"; pr1nt "Server test\n"; pr1nt "-----------\n\n"; my $s = IO::Socket::INET->new(Proto => "tcp", LocalPort => 36000, Listen => SOMAXCONN, Reuse => 1); unless ($s) { pr1nt "Error"; } else { close $s; pr1nt "Ok"; } pr1nt "\n\n"; pr1nt "Client test\n"; pr1nt "-----------\n\n"; my $r = (gethostbyname "smtp.mail.ru")[4]; unless ($r) { pr1nt "Error > Can't resolve hostname"; exit; } $s = IO::Socket::INET->new(Proto => "tcp", Type => SOCK_STREAM); unless ($s) { pr1nt "Error > Can't create socket > $!"; exit; } unless ($s->connect(pack ("Sna4x8", 2, 25, $r))) { close $s; pr1nt "Error > Can't connect > $!"; exit; } $r = <$s>; close $s; if (length $r) { pr1nt "Ok\n$r"; } else { pr1nt "Error > Can't read response"; }