Ping, ICMP (Internet Control Message Protocol-Internet Kontrol Mesaj Protokolü) protokol komutudur. Internet Katmanında IP paketinin veri bölümünde çalışıp, sorunları haberleşen birimlere bildirerek bir geri besleme mekanizması oluşturur.
ICMP genel olarak; TTL süresi dolduğu zaman paketin sahibine bildirim yapma, herhangi bir durumda yok edilen paket hakkında geribildirim sağlama, hata oluşumlarında geribildirim sağlama; paket, başka bir yoldan gideceği zaman geribildirim sağlama gibi görevler üstlenir. Sorun çözümü için sıkça kullanılan Ping ve Tracert komutları, ICMP Echo Request ve ICMP Echo Reply mesajları ile çalışır. Yani Ping işleminde; Ping'in, Ping atılan PC'ye geri yollanması, yani Echo yapan (Ping Atan) PC'ye Echo Reply yollaması gerekmektedir.
TCP/IP protokol takımında Internet Protokolü (IP), bilgisayarlar arasında veya ağ geçitlerinde hata raporlama, hata düzeltme ya da durum bildirme yeteneklerine sahip değildir. Connectionless (bağlantısız) bir protokol olan IP, Kullanıcı Veri bloğu Protokolü (UDP) üstünden iki uç nokta arasında bağlantı kurulup kurulmadığıyla ilgilenmez.
Network (ağ) ortamınızda belirleyeceğiniz bir IP bloğu üzerindeki tüm IP adreslerini tek seferde Ping'leyip, boşta olan IP adreslerini bulabilir ve dilerseniz bir dosyaya yazdırabilirsiniz.
for /L %i in (1,1,254) do Ping -n 2 -w 250 10.25.1.%i>> C:\Users\firat.boyan\Desktop\ipaddresses.txt |
Komut satırındaki;
● for, döngü komutudur. Ping işlemleri bir döngüye bağlı olarak ilerler.
● /L, Loop parametresidir. for dögüsü, bu parametre ile tetiklenecektir.
● %i, bir değişken değeridir. "i" yerine başka bir değer de girilebilir. Buradaki değişken değeri, komut satırında belli noktalarda referans olarak kullanılır.
● (1,1,254), Ping'lenecek IP Adresleri 1'den başlar, 1'er, 1'er ilerler ve 254'e kadar devam eder. Buradaki sayısal değerler, isteğe bağlı olarak değiştirilebilir.
● -n, IP başına Ping'leme işleminin ne kadar tekrarlanacağını belirlediğimiz parametre. Parametre verilmezse, varsayılan olatak 32 bit'lik 4 paket yollayacaktır. -n parametresinden sonra bir sayı değeri belirterek, kaç tane 32 bit'lik Ping paketi yollacağımızı belirlemiş oluruz.
● -w, dönen her bir Echo (Ping) Reply paketinin milisaniye cinsinden Timeout süresini belirler.
● 10.25.1.%i, buradaki %i, (1,1,254) ile belirlediğiniz üçüncü bölümdeki her bir IP adresine (1-254) referans olacak kısımdır.


Aynı işlemi, Ping sonucunun istatistik bilgilerini çekmeden ve dosyaya yazdırmadan sadece ekran çıktısı olarak alabilirsiniz.
for /L %i in (1,1,254) do Ping -n 2 -w 250 10.25.1.%i |

Aynı işlemi, Ping sonucunun istatistik bilgilerini çekerek ve sadece yapılan Echo request'lere dönen Echo reply'ları listeleyerek ancak dosyaya yazdırmadan, sadece ekran çıktısı olarak alabilirsiniz.
for /L %i in (1,1,254) do Ping -n 2 -w 250 10.25.1.%i | FIND /i "Reply" |
NOT: FIND parametresi, filtreleme yapmak için kullanılmaktadır.

Faydalı olması dileğiyle...