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

22 Ağustos 2016 Pazartesi

Java ile konsoldan Ping ve Telnet

Merhaba,

Java ile konsoldan bir ip adresine ping ve telnet yapan basit bir kod.
Henüz ip format validasyonlarını eklememiş olsamda çalışan güzel bir uygulama.

Çalıştırdığınızda konsolda  "Ping 10.1.1.10" yada "Telnet 10.1.1.10 22" şeklinde girmeniz yeterli.

package Tests;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class test1 {
public static void main(String[] args) {
System.out.println("Telecom Tools Menu\n");
System.out.println("--------------------\n");
System.out.println("Commands :  [Ping <IP Address>]  |  [Telnet <IP Add>]\n");
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(System.in));
            while (true) {
                System.out.print("Enter Command : ");
                String input = br.readLine();
                if ("q".equals(input)) {
                    System.out.println("Exit!");
                    System.exit(0);
                }          
/* Ping Block Start */                   
                  if(input.toLowerCase().contains("ping"))
                  {    
                   String[] CommandParts = input.split(" ");
                   int ArrSize = CommandParts.length;
                       if(ArrSize != 2)
                       {
                         System.out.println("Wrong Command. Ex : Ping 10.1.1.10");
                       } else if (ArrSize == 2) {     
                          String ip = CommandParts[1];  
                          InetAddress inet = InetAddress.getByName(ip);
                          System.out.println("Sending Ping Request to " + ip);
                          System.out.println(inet.isReachable(5000) ? "Host is reachable" : "Host is NOT reachable");
                       }                       
/* Ping Block End */  /* Telnet Block Start */   
                    } else if (input.toLowerCase().contains("telnet")) 
                    {
                         String[] CommandParts = input.split(" ");
                         int ArrSize = CommandParts.length;
                         if(ArrSize!=3)
                         { 
                         System.out.println("Wrong Command Format. Ex : Telnet 10.1.1.10 22"); 
                          } else {    
                             String ip = CommandParts[1];
                             Integer port = Integer.parseInt(CommandParts[2]) ; 
                             Socket pingSocket = null;
                             PrintWriter out = null;
                             BufferedReader in = null;                      
                              try {  
                                 pingSocket = new Socket(ip, port);
                                 out = new PrintWriter(pingSocket.getOutputStream(), true);
                                 in = new BufferedReader(new InputStreamReader(pingSocket.getInputStream()));
                              } catch (IOException e) {
                                return;
                              }
                           System.out.println(in.readLine()); 
                           out.close();
                           in.close();
                           pingSocket.close();
                          }
} else {
   System.out.println("Command Not Found or Wrong Command Format");
}                     
/* Telnet Block End */                  
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
 }
}
Teşekkürler

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ı