ping otomasyon etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ping otomasyon etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

16 Haziran 2014 Pazartesi

Script yazarak ping atmak

Merhaba,

Daha önceki yazmızda Perl kütüphanelerinden yararlanarak bir PING MONITOR yazmıştık.

Şimdi ise hiçbir kütüphane kullanmadan direkt olarak bir script ile ping atmayı deneyelim.

Ping atalım. Sonucu bir text dosyasına alalım. Text dosyasındaki sonucu inceleyelim.

  1. #!/usr/bin/perl
  2. use strict;
  3. use Net::Ping;
  4. my $ipdurum = "UP";
  5. my $file = "C:\\pinggecici.txt";
  6. unlink $file;
  7. system("ping 10.1.1.10 >> C:\\pinggecici.txt");
  8. open (MYFILE, 'C:\\pinggecici.txt')
  9. while (<MYFILE>) {
  10.     chomp;
  11.     $line = $_;
  12.     if($line =~ m/100% loss/)
  13.     {
  14.         $pingdurum = "DOWN";
  15.         $ipdurum = "DOWN";
  16.      } else {
  17.          pingdurum = "UP";
  18.      }
  19. }
Teşekkürler,
Cem Selmanoğulları

Ping monitor (Perl Script)

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.

  1. #!/usr/bin/perl
  2. use strict;
  3. use Net::Ping;
  4. my $ip1 = "10.1.1.1";
  5. my $ip2 = "10.1.1.2";
  6. my $ip3 = "10.1.1.3";
  7. my $ip4 = "10.1.1.4";
  8. my $ip5 = "10.1.1.5";
  9. my $ip_durum = "";
  10. my @array = ($ip1,$ip2,$ip3,$ip4,$ip5);
  11. foreach (@array) {
  12.     my $ipadres = $_; 
  13.     chomp($ipadres);
  14.     print $_."\n"
  15.     my $p = Net::Ping->new(icmp);
  16.     if($p->ping($ipadres)) {
  17.         print "BASARILI";
  18.         $ip_durum = $ip_durum." ".$ipadres.":OK ";
  19.     } else {
  20.     print "BASARISIZ";
  21.     $ip_durum = $ip_durum." ".$ipadres.":BASARISIZ ";
  22.     }
  23. }
  24. print $ip_durum;
  25. my $dosyasil = "C:\\ipsonuclari.txt";
  26. unlink $dosyasil;
  27. open(MYFILE, '>> C:\\ipsonuclari.txt');
  28. print MYFILE $dosyasil
  29. 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ı