ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ Π² Perl ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠΎΠΉ. ΠΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡΠ»ΠΊΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅ΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠΎΡΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ - Net::SMTP Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ Net::POP3 Π΄Π»Ρ ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ:
use Net::SMTP; # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ e-mail my $mail_server = 'shokhirev.com'; # ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ my $to_user = ' [email protected]'; # ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ my $from_user = ' [email protected]'; # ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ $smtp = Net::SMTP->new(Host=>$mail_server);# ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡ $smtp->mail($from_user); # ΠΏΠΈΡΡ $smtp->to($to_user); # ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ $smtp->data(); # ΠΏΠΈΡΡΠΌΠΎ $smtp->datasend("To: $to_user\n"); # $smtp->datasend("Subject: Lectures on Perl 5\n"); $smtp->datasend("\n"); $smtp->datasend("Π‘ΠΎΠΎΠ±ΡΠ°Π΅ΠΌ ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° intuit.ru\n"); $smtp->datasend("ΠΊΡΡΡΠ° Π»Π΅ΠΊΡΠΈΠΉ ΠΏΠΎ Perl 5\n"); $smtp->dataend(); # Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ $smtp->quit; # ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡ
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° Net::POP3 Π½Π΅ ΡΠΎΡΡΠ°Π²ΠΈΡ ΡΡΡΠ΄Π° Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΡΠΎΡΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΡΡ:
use Net::POP3; # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ e-mail my $mail_server = 'shadrinsk.net'; # ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ my $user = 'mshock'; # ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ my $password = 'secret'; # ΠΏΠ°ΡΠΎΠ»Ρ $pop = Net::POP3->new($mail_server); # ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡ if ($pop->login($user, $password) > 0) {# ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΡΡΡ my $numbers = $pop->list; # ΠΏΠΎΠ»ΡΡΠ°Ρ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΈΡΠ΅ΠΌ foreach my $numbers (keys %$numbers) {# ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ my $message = $pop->get($numbers); # ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΏΠΈΡΡΠΌΠΎ print @$message; # ΠΏΠ΅ΡΠ°ΡΠ°Ρ Π΅Π³ΠΎ $pop->delete($numbers); # ΡΠ΄Π°Π»ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° } } $pop->quit; # ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡ
ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ CPAN Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠΎΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΠ° Perl Π½Π°ΠΏΠΈΡΠ°Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΠ°Ρ ΠΏΠΎΡΡΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ web-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Open WebMail (openwebmail.org). ΠΠ° Π½Π΅ΠΌ ΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠΏΠ°ΠΌΠ° - SpamAssassin.
Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ (instant messaging), ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΏΠ΅ΠΉΠ΄ΠΆΠ΅ΡΠ°ΠΌΠΈ, ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅: ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ Π»ΡΠ΄Π΅ΠΉ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ICQ, Jabber, AOL Instant Messenger ΠΈΠ»ΠΈ Yahoo!Messenger. Π Π°ΡΡ ΠΈΠ²Π°Ρ Π½Π° ΡΠ°ΠΉΡΠ΅ CPAN ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Perl-ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. Π₯ΠΎΡΡ ΡΡΠΎΡ ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π»ΡΠ΄Π΅ΠΉ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎ ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΡΡΠΈΠΈ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ XMPP/Jabber (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Net::Jabber Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ· Π°ΡΡ ΠΈΠ²Π° CPAN). Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Jabber-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ Π½Π΅Π³ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ:
use Net::Jabber; # ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΊΠ»Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Jabber use utf8; # Π² Jabber ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ UTF-8 my $server = 'jabber.shadrinsk-city.ru'; # ΡΠ΅ΡΠ²Π΅Ρ my $port = 5222; # ΠΏΠΎΡΡ my $username = 'perl'; # ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ my $password = 'password'; # Π΅Π³ΠΎ ΠΏΠ°ΡΠΎΠ»Ρ my $resource = 'jud'; # ΡΠ΅ΡΡΡΡ my $to_user = ' [email protected]'; # ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ my $client = new Net::Jabber::Client(); # ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° $client->SetCallBacks( # ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ: onconnect => \&on_connect, # ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ onauth => \&on_auth, # ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ message => \&on_message, # ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ); $client->Execute( # ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ hostname=>$server, port=>$port, username=>$username, password=>$password, resource=>$resource, register=>1, connectsleep=>0, connectattempts=>1, ); # Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π² on_message sub on_connect { # Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ print "ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ $server:$port\n"; } sub on_auth { # Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ print "ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ $username\n"; $client->MessageSend( # ΠΠ’ΠΠ ΠΠΠΠ―ΠΠ Π‘ΠΠΠΠ©ΠΠΠΠ to=> $to_user. '/' .$resource, subject=>'ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Perl', body=>'ΠΡΠΈΠ²Π΅Ρ, Jabber!' ); } sub on_message { # Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ my $sid = shift; # ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ ΠΈ ΡΠ΅ΠΊΡΡ my $message = shift; # ΠΎΡΠ²Π΅ΡΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ: print "Π’Π΅ΠΌΠ°:", $message->GetSubject(), "\n"; print "Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:", $message->GetBody(), "\n"; $client->Disconnect(); # ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° exit(0); # ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡ }
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅: Π³Π»Π°Π²Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ, Π΄Π»Ρ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Jabber ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅Π»ΡΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π° Perl Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΠΈΠΌΠΈ.
ΠΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Perl Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ»ΡΠ·ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ IP-ΡΠ΅ΡΡΠΌΠΈ ΠΈ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ΅ΡΡΠΌΠΈ. ΠΠ° Perl Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΡΠΉ ΠΏΠ΅ΠΉΠ΄ΠΆΠΈΠ½Π³ΠΎΠ²ΡΠΉ ΡΠ»ΡΠ· Sendpage (www.sendpage.org). ΠΠ»Π°ΡΡ Net::SNPP Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΠ΅ΠΉΠ΄ΠΆΠ΅Ρ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ SNPP (Simple Network Paging Protocol), Π° ΠΌΠΎΠ΄ΡΠ»Ρ Net::SMS ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠ»ΡΠΆΠ±ΠΎΠΉ SMS-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² GSM-ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΈΠΈ. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠ°Π»ΠΎ ΠΊΠΎΠ³ΠΎ ΡΠ΄ΠΈΠ²Π»ΡΠ΅Ρ, ΡΡΠΎ Π²ΡΠΊΠΎΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π½Π° CPAN Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Perl-ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΉ.
ΠΡΡΠΏΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΠΆΠΈΠ²ΡΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΌΠΎΠΌ: ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ - ΡΡΠΎ Π΅Π΅ ΠΎΡΠ³Π°Π½Ρ, Π° Π»ΠΈΠ½ΠΈΠΈ ΡΠ²ΡΠ·ΠΈ - Π½Π΅ΡΠ²Π½ΡΠ΅ Π²ΠΎΠ»ΠΎΠΊΠ½Π°. Π‘Π΅ΡΡ Π΅ΠΆΠ΅ΠΌΠΈΠ½ΡΡΠ½ΠΎ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π΅Π΅ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΌΠΎΠ³ΡΡ "Π±ΠΎΠ»Π΅ΡΡ" ΠΈ "ΠΎΡΠΌΠΈΡΠ°ΡΡ", ΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ "Π·Π°Π΄ΡΡ Π°ΡΡΡΡ" ΠΎΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ (ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°). ΠΠ»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΡΠΈ, Π΅Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Perl. Π Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Perl ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ "ΡΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΡ" ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² Π΅Π΄ΠΈΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Perl Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ, ΡΠΎ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΡΠΌΠΈ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Net::Ping, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Ρ ΠΎΡΡΠ° ΠΏΠΎ Π΅Π³ΠΎ IP-Π°Π΄ΡΠ΅ΡΡ. Π ΠΠ‘ MS Windows ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
perl -MNet::Ping -e"print Net::Ping->new()->ping('10.0.0.1')"
Π Π½Π΅ΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ perl, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ (-M) Net::Ping ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (-e), Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π² Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ. Π Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ ping ΠΊΠ»Π°ΡΡΠ° Net::Ping Ρ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ Π°Π΄ΡΠ΅Ρ Ρ ΠΎΡΡΠ° ΠΈ Π΄Π²Π΅ 1, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΡ Π°ΠΊΡΠΈΠ²Π΅Π½, ΠΈΠ»ΠΈ Π΄Π²Π° 0, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΠΎΡΠ²Π΅ΡΠΈΠ».
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΠΌΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ SNMP (Simple Network Management Protocol), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» UDP. Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΠΎΡΠ° ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Π°Π³Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π·Π°ΠΏΡΠΎΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊ ΡΠ΅ΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° - ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΏΡΠΈΠ½ΡΠ΅ΡΠ°, ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ) ΠΈΠΌΠ΅ΡΡ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Object IDentifier, OID), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ² Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ "Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ" MIB (Management Information Base). ΠΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ SNMP ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Ρ ΡΡΡΡΠΎΠΉΡΡΠ², Π½ΠΎ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠΈΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° SNMP ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΈ Π‘Π£ΠΠ. ΠΠ° Perl Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ c SNMP-Π°Π³Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠ»Ρ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π°Π³Π΅Π½Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΈ Ρ Π½Π΅Π³ΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π΄Π²Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ - ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π²ΡΠ΅ΠΌΡ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ:
use Net::SNMP; # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ SNMP my ($session, $error) = Net::SNMP->session( # ΡΠ΅Π°Π½Ρ ΡΠ°Π±ΠΎΡΡ -hostname => '192.168.82.83', # Ρ Ρ ΠΎΡΡΠΎΠΌ, -community => 'public', # Π³ΡΡΠΏΠΏΠΎΠΉ -port => 161 # ΠΈ ΠΏΠΎΡΡΠΎΠΌ ); defined($session) or die ("ΠΡΠΈΠ±ΠΊΠ° ΡΠ΅Π°Π½ΡΠ° SNMP: $error"); # Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΏΠΎ # ΠΊΠΎΠ΄Ρ (OID) ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° MIB: info('1.3.6.1.2.1.1.1.0', 'sysDescr'); # ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ info('1.3.6.1.2.1.1.3.0', 'sysUpTime'); # Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ $session->close(); # Π·Π°Π²Π΅ΡΡΠ°Π΅ΠΌ ΡΠ΅Π°Π½Ρ sub info { # ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΡΠΎΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ my ($OID, $caption) = @_; # ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: ΠΊΠΎΠ΄ ΠΈ ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° my $response = $session->get_request($OID); unless (defined($response)) { # Π΅ΡΠ»ΠΈ Π²ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ print 'ΠΡΠΈΠ±ΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ°: ', $session->error(); } else { # Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΎΡΠ²Π΅Ρ: printf "$caption/$OID:\n\t%s\n", $response->{$OID}; } }
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΠ‘ MS Windows Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
sysDescr/1.3.6.1.2.1.1.1.0: Hardware: x86 Family 6 Model 8 Stepping 6 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.1 (Build 2600 Uniprocessor Free) sysUpTime/1.3.6.1.2.1.1.3.0: 1 hour, 05:14.11
ΠΠ»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΡΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. Π‘Π±ΠΎΡΠΎΠΌ ΠΈ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅ΡΠΈ ΠΈ Π΅Π΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° SNMP ΡΠΈΡΡΠ΅ΠΌΡ: Big Sister (bigsister.sourceforge.net), Cricket (cricket.sourceforge.net) ΠΈ MRTG (www.mrtg.org), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Perl.