#!/usr/bin/perl -w

	$| = 1;

	my $smtp = 'smtp.mail.ru';
	my $dns = '208.67.222.222';

	print "Content-type: text/plain; charset=windows-1251\n\n" if $ENV{HTTP_USER_AGENT};

	#print "System info\n";
	#print "-----------\n\n";
	#print "$^O";
	#print "\n", `uname -a` if $^O !~ /win/i;
	#print "\n\n";

	#print "Perl modules\n";
	#print "------------\n\n";
	#print "strict .......................... ";
	unless (eval ("use strict; return 1;")) { print "Error"; } else { }
	#print "\nSys::Hostname ................... ";
	unless (eval ("use Sys::Hostname; return 1;")) { print "Error"; } else { }
	#print "\nPOSIX ........................... ";
	unless (eval ("use POSIX qw(setsid); return 1;")) { print "Error"; } else { }
	#print "\nErrno ........................... ";
	unless (eval ("use Errno qw(EINPROGRESS); return 1;")) { print "Error"; } else { }
	#print "\nIO::Socket ...................... ";
	unless (eval ("use IO::Socket qw(:DEFAULT :crlf); return 1;")) { print "Error"; } else { use IO::Socket qw(:DEFAULT :crlf); }
	#print "\nIO::Select ...................... ";
	unless (eval ("use IO::Select; return 1;")) { print "Error"; } else { }
	#print "\n\n";

	#print "Local server test\n";
	#print "-----------\n\n";
	my $s = IO::Socket::INET->new(Proto => "tcp", LocalPort => 36000, Listen => SOMAXCONN, Reuse => 1);
	unless ($s) { print "Error"; } else { close $s; }
	#print "\n\n";

	#print "DNS client test ($dns)\n";
	#print "-----------\n\n";
	my $r = (gethostbyname $dns)[4];
	unless ($r) { print "Error > Can't resolve DNS hostname"; exit; }
	$s = IO::Socket::INET->new(Proto => "tcp", Type => SOCK_STREAM);
	unless ($s) { print "Error > Can't create socket > $!"; exit; }
	unless ($s->connect(pack ("Sna4x8", 2, 53, $r))) { close $s; print "Error > Can't connect > $!"; exit; }
	close $s; #print "Ok";
	#print "\n\n";

	#print "SMTP Client test ($smtp)\n";
	#print "-----------\n\n";
	$r = (gethostbyname $smtp)[4];
	unless ($r) { print "Error > Can't resolve SMTP hostname"; exit; }
	$s = IO::Socket::INET->new(Proto => "tcp", Type => SOCK_STREAM);
	unless ($s) { print "Error > Can't create socket > $!"; exit; }
	unless ($s->connect(pack ("Sna4x8", 2, 25, $r))) { close $s; print "Error > Can't connect > $!"; exit; }
	$r = <$s>; close $s;
	if (length $r) { print "OK"; } else { print "Error > Can't read response"; }