İçerikleri sosyal medya üzerinden paylaşarak daha fazla kişiye ulaşmasına yardımcı olabilirsiniz.



Folder Security Management
Kategori: Network
Fırat Boyan 26.12.2017 5

Bir IP Aralığına CMD Komutu İle Toplu Ping Atma

Toplu IP Ping atma işlemi, Windows ortamlarında PowerShell kullanılarak verimli bir şekilde gerçekleştirilebilir. Tek tek IP adreslerine manuel olarak Ping komutu göndermek yerine, belirli bir IP listesini veya aralıktaki tüm IP’leri otomatik olarak kontrol etmek, hem zaman kazandırır hem de sistematik bir bağlantı analizi yapmayı mümkün kılar. Büyük Network yapılarında bu işlem, belirli periyotlarla gerçekleştirilerek bağlantı sürekliliğinin izlenmesini ve olası kesintilere karşı önceden önlem alınmasını sağlar.

Windows ortamında PowerShell, toplu Ping işlemleri için en etkili araçlardan biridir. Test-Connection komutu, ICMP paketlerini kullanarak belirli bir IP adresine erişilebilirliği test etmek için kullanılır. Ancak, bu komut varsayılan olarak tek bir hedefe yönelik çalışır. Birden fazla IP’ye aynı anda Ping atmak için ForEach-Object, Parallel ForEach veya Start-Job gibi PowerShell mekanizmalarından yararlanarak işlemi çok daha hızlı hale getirmek mümkündür. Özellikle, Parallel ForEach kullanıldığında aynı anda yüzlerce IP’ye Ping atılabilir ve süreç büyük ölçüde hızlandırılmış olur.

Büyük Network ortamlarında yalnızca Ping sonuçlarını görmek yeterli değildir. Elde edilen verilerin bir Log dosyasına kaydedilmesi, geçmişe yönelik analiz yapmayı mümkün kılar. Out-File veya Export-Csv komutları kullanılarak, toplu Ping sonuçları düzenli bir şekilde kaydedilebilir ve zaman bazlı değişimler izlenebilir. Bu yöntemle, belirli IP’lerde meydana gelen bağlantı kesintileri ya da yüksek yanıt süreleri kolayca tespit edilebilir.

Sistemlerin anlık bağlantı durumunu kontrol etmek için manuel olarak çalıştırılabilen PowerShell Script'leri yeterli olabilir. Ancak, belirli bir zaman diliminde düzenli olarak toplu Ping testi yapmak için Task Scheduler üzerinden otomatik çalıştırma mekanizması oluşturulabilir. Belirli aralıklarla çalışacak bir PowerShell Script’i, belirlenen IP listesine Ping atarak sonuçları bir log dosyasına kaydedebilir ve gerektiğinde e-posta ile bildirim gönderebilir. Böylece, herhangi bir sunucu veya Network bileşeni erişilemez hale geldiğinde, sistem yöneticileri anında bilgilendirilebilir.

Geniş ölçekli ortamlarda Ping işlemlerini daha verimli hale getirmek için paralel çalıştırma teknikleri büyük avantaj sağlar. Geleneksel yöntemle her IP'ye sırasıyla Ping atmak yerine, Start-Job veya Parallel ForEach gibi PowerShell mekanizmaları kullanılarak işlemler eşzamanlı olarak gerçekleştirilebilir. Bu sayede, yüzlerce IP'yi aynı anda test etmek mümkün olur ve işlem süresi önemli ölçüde azalır.

Güvenlik politikaları açısından bakıldığında, bazı Network ortamlarında ICMP trafiği Firewall tarafından kısıtlanmış olabilir. Bu durumda, TCP SYN Ping veya ARP Ping gibi alternatif yöntemlerle bağlantı durumu kontrol edilebilir. PowerShell, Test-NetConnection gibi komutlarla belirli bir port üzerinden bağlantı testi yaparak erişilebilirliği doğrulayabilir. Eğer ICMP engellenmişse, belirli bir sunucu veya Network cihazının belirlenen bir port üzerinden yanıt verip vermediğini anlamak için farklı protokoller kullanılabilir.

Toplu Ping işlemleri, Network erişilebilirliği test etmekten çok daha fazlasını ifade eder. Doğru teknikler ve optimizasyon yöntemleriyle yapıldığında, bağlantı sürekliliği, erişim sorunlarının önceden tespiti ve sistem güvenliği açısından büyük avantajlar sağlar. PowerShell kullanarak bu süreci otomatik hale getirmek, zamandan tasarruf sağladığı gibi daha güvenilir bir izleme mekanizması oluşturulmasına da katkıda bulunur.

Ping Komutu Çalışma Prensibi

Ping komutu, belirli bir IP adresine ICMP ECHO_REQUEST paketleri göndererek hedefin yanıt verip veremediğini test etmeye yarar. Hedef cihaz cevap verirse, ICMP ECHO_REPLY paketi döner ve bu yanıt, bağlantının sağlıklı olup olmadığına dair ipuçları sunar. Gönderilen paket sayısı, alınan yanıtlar, kayıp oranı ve Round-Trip Time - RTT gibi veriler, Network üzerindeki gecikme ve kayıp durumlarını analiz etmek için kullanılır.

Bir adres ping'lenirken öncelikle kaynak cihaz, hedefe ICMP ECHO_REQUEST paketlerini yollar. Eğer hedef bu paketi alabiliyor ve yanıt verebiliyorsa, ICMP ECHO_REPLY paketi ile dönüş yapar. Yanıtın kaç milisaniyede geldiği, RTT değeri olarak ölçülür. RTT’nin düşük olması, bağlantının hızlı olduğu anlamına gelirken, yüksek değerler Network üzerinde bir sıkışıklık veya gecikme yaşandığını gösterebilir. Paket kayıpları ise daha ciddi sorunlara işaret eder. Gönderilen paketlerden bazıları yanıt almıyorsa, Network üzerinde paket kaybı yaşanıyor demektir. Bu kayıplar, cihazların erişilemez olması, yönlendirme problemleri veya bant genişliği yetersizliklerinden kaynaklanabilir.

Ping komutu aynı zamanda DNS çözümleme gibi ek kontroller için de kullanılabilir. Bir alan adı yerine doğrudan IP adresiyle test yapıldığında, DNS’in devrede olup olmadığı anlaşılabilir. Eğer IP ile ping başarılı olurken, alan adı kullanıldığında başarısız oluyorsa, sorun büyük ihtimalle DNS kaynaklıdır.

TTL (Time To Live) değeri, paketin hedefe ulaşana kadar kaç yönlendiriciden geçtiğini belirten bir parametredir. Bu değer, hedef cihazdan gelen yanıtta gösterilir ve genellikle işletim sistemine bağlı olarak farklı değerler alır. Örneğin, Windows tabanlı cihazlar genellikle TTL’yi 128 ile başlatırken, Linux ve Unix sistemlerde bu değer genellikle 64 olur. TTL süresi tükendiğinde, paket hedefe ulaşmadan düşer ve yanıt alınamaz.

Birden fazla IP adresine aynı anda ping atmak için PowerShell veya Batch Script'leri kullanılabilir. Böylece tek tek adresleri test etmek yerine, toplu şekilde Network üzerindeki farklı cihazların durumu analiz edilebilir. Özellikle büyük altyapılarda, belirli bir IP aralığını veya belirli cihazları aynı anda test etmek zaman kazandırır. Sürekli erişilebilirlik gerektiren kritik cihazlar için belirli aralıklarla otomatik ping testleri yapılarak bağlantı sürekliliği kontrol altında tutulabilir.

Ping çıktısındaki verilerin detaylı incelenmesi, Network üzerindeki olası problemlerin erken teşhis edilmesini sağlar. Gecikme, kayıp oranı veya değişken RTT değerleri, altyapıda iyileştirme gerektiren noktalar hakkında önemli bilgiler sunar.

Bir IP aralığına CMD üzerinden toplu Ping atma işlemi için basit bir Batch Script kullanabiliriz. Bu Script, belirtilen IP aralığındaki her IP adresine Ping atar ve sonuçları ekrana yazdırır. İşte bu işlemi gerçekleştiren örnek bir Batch Script:

@echo off
for /L %%i in (1,1,254) do (
Ping -n 1 10.10.10.%%i >nul
if not errorlevel 1 echo 10.10.10.%%i is reachable
)
pause

Bu Script, 10.10.10.1 ile 10.10.10.254 arasındaki tüm IP adreslerine Ping atar ve erişilebilir olanları ekrana yazdırır. İşleyiş şu şekildedir:

📌 @echo off: Bu komut, Script'in çalıştırılması sırasında komut satırında gereksiz bilgilerin görüntülenmesini engeller.

📌 for /L %%i in (1,1,254): Bu döngü, 1'den 254'e kadar olan sayıları iteratif olarak kullanır ve her bir değeri %%i değişkenine atar.

📌 Ping -n 1 10.10.10.%%i >nul: Bu komut, %%i değişkeninin değeriyle belirtilen IP adresine bir adet Ping paketi gönderir ve çıktıyı >nul ile devre dışı bırakır (yani ekranda göstermez).

📌 if not errorlevel 1 echo 10.10.10.%%i is reachable: Bu koşul, Ping komutu başarılı olursa (errorlevel 0 ise) belirtilen IP adresinin erişilebilir olduğunu ekrana yazdırır. "errorlevel 1" değeri, Ping komutunun başarısız olduğunu gösterir. "if not errorlevel 1" ifadesi, errorlevel değeri 1 değilse (yani 0 ise) anlamına gelir ve Ping başarılı olursa belirtilen IP adresinin erişilebilir olduğunu gösterir.

📌 pause: Bu komut, Script'in çalışmasını durdurur ve ekranda kalmasını sağlar, böylece sonuçları inceleyebilirsiniz.

Toplu Ping Atma Avantajları

Toplu Ping atma işlemi, büyük Network'lerde çok sayıda cihazın durumunu hızlıca kontrol etmek için kullanılır. Bu yöntem, Network yöneticilerine aşağıdaki avantajları sağlar:

Erişilebilirlik Kontrolü: Belirli bir IP aralığındaki cihazların erişilebilir olup olmadığını hızlıca kontrol edebilir.

Network Sorunlarının Tespiti: Erişilemeyen cihazlar veya yüksek gecikme süreleri, Network'teki potansiyel sorunları işaret edebilir.

Otomasyon: Batch Script kullanarak bu işlemi otomatikleştirerek zamandan tasarruf edilebilir.

Raporlama: Sonuçlar kaydedilerek Network sağlığı hakkında raporlar oluşturulabilir.

Batch Script, CMD üzerinde çalıştırılabilen basit metin dosyalarıdır. Bu dosyalar, çeşitli komutları ardışık olarak çalıştırarak otomatik işlemler gerçekleştirebilir. Yukarıdaki örnekte, bir IP aralığına toplu Ping atma işlemi bir Batch Script ile gerçekleştirilmiştir. Bu Script, belirli bir IP aralığındaki her IP adresine bir adet Ping paketi gönderir ve başarılı olanları ekrana yazdırır. Bu, büyük Network'lerde çok sayıda cihazın durumunu hızlıca kontrol etmek için oldukça faydalıdır.

Sonuç olarak, bir IP aralığına CMD üzerinden toplu Ping atma işlemi, Network yöneticileri için etkili bir araçtır. Ping komutunun temelleri ve Batch Script kullanımıyla bu işlem otomatikleştirilebilir ve Network sağlığı hakkında hızlı ve doğru bilgiler elde edilebilir. Bu yöntem, Network'teki cihazların erişilebilirliğini kontrol etmek, bağlantı sorunlarını teşhis etmek ve genel Network performansını izlemek için kullanışlı bir çözümdür.

Faydalı olması dileğiyle...


Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.



Yazar Hakkında

firatboyan.com


1985 yılında Alanya'da doğdum. İlk, orta ve lise öğrenimimi Alanya'da tamamladım. Liseden mezun olduktan sonra Akdeniz Üniversitesi Bilgisayar Teknolojisi Ön Lisans programına yerleştim ve bu programdan mezun oldum. Ön Lisans programından mezun olduktan bir süre sonra Dikey Geçiş Sınavı (DGS) ile İstanbul Teknik Üniversitesi (İTÜ) Bilgisayar Mühendisliği Lisans programına yerleştim.

2003 yılından beri Bilgi Teknolojileri sektöründe Sistem ve Network alanlarında çalışıyorum. Bir çok firma bünyesinde onlarca farklı projelerde yer alarak bu alanda yıllar içinde ciddi bir bilgi birikimi ve deneyimler kazandım. Bilgi Teknolojileri sektöründeki profesyonel çalışma hayatımın uzunca bir dönemini entegratör firma bazında, ağılıklı olarak Microsoft ürünleri üzerine danışman olarak sürdürüyor ve yüksek seviyeli projeler geliştiriyorum. Uzunca bir süredir de Türkiye'nin önde gelen entegratör firmalarından olan Data Market bünyesinde Senior Cloud Engineer olarak çalışıyorum.

Ek olarak, 2015 yılında Network Akademi bünyesinde Microsoft Certified Trainer (MCT) ünvanı ile Sistem ve Network Uzmanlık eğitimleri vermeye başladım. Sistem ve Network Uzmanlığı alanındaki eğitmenlik serüvenime Network Akademi bünyesinde devam etmekteyim.

YORUMLAR
Bu makaleye 5 yorum yapıldı.
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.


750 karakter yazabilirsiniz.
Captcha
Güvenlik kodunu BÜYÜK harflerle giriniz.
* Yorumlar, onaylandıktan sonra yayınlanmaktadır.
* E-posta, yorum onay bildirimi için gereklidir. Yayınlanmaz.


30.01.2022 Fahrettin Usta
Merhabalar Fırat bey; Öncelikle paylaşımınız için teşekkür ederim. for /L %i in (1,1,254) do Ping -n 2 -w 250 10.25.1.%i C:\Users\firat.boyan\Desktop\ipaddresses.txt komutunu bat dosyası formatında çalıştırma imkanımız varmıdır? varsa nasıl yazmalıyız.

30.01.2022 Fırat Boyan
Merhaba Fahrettin, for /f "tokens1" %a in ('type "C:\Users\FIRATB\Desktop\ipaddresses.txt"') DO @ping -n 4 -w 250 %a komutu denersen çalışacaktır.


17.03.2020 Ebru Demiryürek
Bilgiler için teşekkürler.
25.12.2019 tuncay karaca
merhaba; makale oldukça faydalı Fırat bey. Bir sorum olacak FIND den önce ki karakter tam olarak ne dir?

25.12.2019 Fırat Boyan
Merhaba, FIND'den önceki karakter, alt gr ve Z'nin solundaki büyük küçük işratine aynı anda basılarak oluşturulan ve işereti. Pipeline olarak da geçer ve birden çok komutun ardışık biçimde işlemesine olanak sağlar.