Merhaba,
Basit bir ping monitor nasıl yazılır, görelim.
Genelde tercihim perl script dilidir. Diğer dillerde de yazmak mümkündür.
Perl kütüphanelerini kullanabilir yada kendimiz de direkt olarak yazabiliriz.
Öncelikli olarak perl Net::Ping kütüphanesinin kullanımını görelim.
5 adet ip adresine ping attırıp sonucu almaya çalışalım.
Bu 5 ip adresi pinglenecek sonuç ekrana bastırılacak. Ayrıca C:\ipsonuclari.txt isimli dosyaya yazılacak.
Öncelikle 5 ip adresini bir dizide toplayacağız. Sonrasında bu dizi içinde bir for döngüsü ile dönüp her ip adresini pingleyeceğiz.
- #!/usr/bin/perl
- use strict;
- use Net::Ping;
- my $ip1 = "10.1.1.1";
- my $ip2 = "10.1.1.2";
- my $ip3 = "10.1.1.3";
- my $ip4 = "10.1.1.4";
- my $ip5 = "10.1.1.5";
- my $ip_durum = "";
- my @array = ($ip1,$ip2,$ip3,$ip4,$ip5);
- foreach (@array) {
- my $ipadres = $_;
- chomp($ipadres);
- print $_."\n"
- my $p = Net::Ping->new(icmp);
- if($p->ping($ipadres)) {
- print "BASARILI";
- $ip_durum = $ip_durum." ".$ipadres.":OK ";
- } else {
- print "BASARISIZ";
- $ip_durum = $ip_durum." ".$ipadres.":BASARISIZ ";
- }
- }
- print $ip_durum;
- my $dosyasil = "C:\\ipsonuclari.txt";
- unlink $dosyasil;
- open(MYFILE, '>> C:\\ipsonuclari.txt');
- print MYFILE $dosyasil
- close (MYFILE);
Buradaki önemli noktalardan birisi new(icmp); fonksiyonunun çalışabilmesi için bu scriptin hem icmp paketleri göndermeye hem de gelen cevapları dinlemeye iznimizin olmasıdır.
Aksi takdirde ping atılamayan bazı ip ler ayakta gibi görünecektir.
Teşekkürler,
Cem Selmanoğulları