IP adres aralığında, aynı anda hangilerinin açık olduğunu söylemenin hızlı ve kirli bir yolu olarak ping yapmak istediğim bir sürü makinem var. Bunu yapmak için hangi (ücretsiz) yazılımı kullanabilirim?
Nmap Windows için kullanılabilir:
# nmap -sP 10.0.10.1-100
Bu komutu kullandım
for %%i in 200 to 254 do ping 10.1.1.%%i
toplu iş dosyasında benzer bir nedenden dolayı
LAN'ınızdaki tüm IP adreslerini manuel olarak pinglemek yerine, aşağıdakileri yapabilirsiniz:
Bir Komut İstemi açın ve şunu yazın:
FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
-n 1
, her bilgisayara yalnızca 1 ping paketinin gönderileceği anlamına gelir.
Kendi ağ kimliğinizle eşleşecek şekilde 192.168.0
öğesini değiştirin.
Bu, 192.168.0.0 ağ bölümündeki tüm IP adreslerine ping atıp C:\'de ipaddresses.txt
adlı bir metin dosyası oluşturacak ve burada sadece cevap veren IP adreslerini listeleyecektir.
Ayrıca, tüm yanıt veren IP adreslerini ana bilgisayar adlarına çözümlemek için ping komutuna -a
ekleyebilirsiniz, ancak bunu yapmak komut dosyasının tamamlanması için oldukça zaman harcar.
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
deneyin fping
Bir IP adres aralığı içinde dolaşan ve onları pingleyen bir Bash script yazmanız yeterlidir. Ping gönderen bir örnek, 10.1.1.1 - 10.1.1.255 (dahil) aralığında:
for i in {100..255}
do
ping 10.1.1.$i
done
Aşağıdaki betiği sunucuya .bat
veya .cmd
uzantısıyla kaydedin ve dosyayı Komut İstemi komutundan çağırın. IP adres aralığına girmenizi ister.
Lütfen IP adresinin sadece üç basamağını girin.
@echo off
SET count=0
SET /p subnet=Please enter IP address range (for example, 192.168.0)
:start
SET /a count=%count%+1
cls
ECHO. & ECHO Trying %subnet%.%count% & ECHO.
ping -n 1 -w 1000 %subnet%.%count% >nul
IF %errorlevel%==0 echo %subnet%.%count% UP >> c:\pingnet.log
IF %errorlevel%==1 echo %subnet%.%count% DOWN >> c:\pingnet.log
IF %count%==254 goto :eof
GOTO start
Komut çalıştırıldıktan sonra, C sürücüsünün kökünde pingnet.log
bir metin dosyası adı oluşturur. Bu dosya, kullanılmış ve aşağı (boş) IP adreslerinin bir listesini vermelidir.
Örneğin:
10.2.214.1 UP
10.2.214.2 UP
10.2.214.3 UP
10.2.214.4 DOWN
Çalıştırması oldukça basittir ve size zaman kazandırır.
Angry IP Tarayıcı harika ama CLI araçlarını tercih ediyorum. Bakın bu powershell betiğini Vista'da çalıştırıp çalıştıramayacağına bak. https://github.com/webstersprodigy/PowerSploit/blob/Portscan/Recon/Invoke-Portscan.ps1
Ayrıca VirtualBox'da linux live cd/usb, çift önyükleme veya vm kullanarak bir Linux CLI'ye erişmenizi de öneririm. (VirtualBox yükleyin, yeni bir vm ekleyin, Debian'ı kurun.) Bir linux CLI değeri paha biçilmezdir.
Linux CLI'den aşağıdakini çalıştırın:
for ip in 172.10.1.{1..254}; do ping -c 1 -w 1 $ip > /dev/null && echo $ip "$(nslookup $ip | grep 'name = ' | awk -F ' = ' '{print $2}')"; done
Ağ aralığınızı ('172.10.1' bölümü) ayarlayın ve çalışmadan çıkın. Bu, ICMP yankı (ping) isteklerine yanıt veren ve bunları DNS sunucunuza karşı çözen, ağdaki tüm ana bilgisayarların bir listesini sağlayacaktır.
Not: Bu, ICMP'yi engellemiş olabileceği için canlı ana bilgisayarları test etmenin en güvenilir yolu değildir.
nmap -sP 192.168.1.0/24
Not: Nmap bir port tarayıcı olduğundan ve sonuçlarını ICMP yanıtlarından daha fazlasına dayandırdığından daha güvenilirdir. Pentesters tarafından yoğun olarak kullanılıyor ve öğrenmeye değer.