#!/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 "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"; }