ฉันมีเครือข่ายหลายเครื่องในช่วงที่อยู่ IP ซึ่งฉันต้องการ ping พร้อมกันเป็นวิธีที่รวดเร็วและสกปรกในการบอกว่าสวิตช์ใดเปิดใช้อยู่ ฉันสามารถใช้ซอฟต์แวร์ใดในการทำสิ่งนี้ได้ฟรี
ฉันใช้Windows Vista
ฉันมีเครือข่ายหลายเครื่องในช่วงที่อยู่ IP ซึ่งฉันต้องการ ping พร้อมกันเป็นวิธีที่รวดเร็วและสกปรกในการบอกว่าสวิตช์ใดเปิดใช้อยู่ ฉันสามารถใช้ซอฟต์แวร์ใดในการทำสิ่งนี้ได้ฟรี
ฉันใช้Windows Vista
คำตอบ:
วิธีที่เร็วที่สุดคือการใช้Angry IP Scanner
ฉันใช้มันในแบบเดียวกับที่คุณต้องการ!
Nmapพร้อมใช้งานสำหรับ Windows:
# nmap -sP 10.0.10.1-100
-sn
การเรียกใช้ "ไม่มีการสแกนพอร์ต" เพียงแค่ค้นหาโฮสต์
ฉันใช้คำสั่งนี้
for %%i in 200 to 254 do ping 10.1.1.%%i
ในไฟล์แบตช์ด้วยเหตุผลที่คล้ายกัน
นี่คือช่วงของที่อยู่ IP ที่คุณสามารถสังเกตเห็นได้ใน:
แทนที่จะกระตุกที่อยู่ IP ทั้งหมดด้วยตนเองใน LAN ของคุณคุณสามารถทำสิ่งต่อไปนี้:
เปิดพร้อมท์คำสั่งและพิมพ์:
FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
-n 1
หมายความว่าจะส่งเพียง 1 แพ็คเก็ตปิงไปยังคอมพิวเตอร์แต่ละเครื่อง
เปลี่ยน192.168.0
ให้ตรงกับ ID เครือข่ายของคุณ
สิ่งนี้จะ ping ที่อยู่ IP ทั้งหมดในส่วนเครือข่าย 192.168.0.0 และสร้างไฟล์ข้อความชื่อipaddresses.txt
C: \ ซึ่งจะแสดงเฉพาะที่อยู่ IP ที่ให้การตอบกลับเท่านั้น
นอกจากนี้คุณยังสามารถเพิ่ม-a
คำสั่ง ping เพื่อแก้ไขที่อยู่ IP ที่ตอบสนองต่อชื่อโฮสต์ทั้งหมด แต่การทำเช่นนั้นจะทำให้สคริปต์ใช้เวลาพอสมควรในการเสร็จสิ้น:
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
คุณสามารถเขียนสคริปต์Bashที่วนรอบช่วงที่อยู่ IP และส่ง Ping ตัวอย่างที่ส่ง Ping ไปยังที่อยู่ในช่วง 10.1.1.1 ถึง 10.1.1.255 (รวม):
for i in {100..255}
do
ping 10.1.1.$i
done
ping 10.1.1.i
ping 10.1.1.$i
บันทึกสคริปต์ด้านล่างบนเซิร์ฟเวอร์ด้วยส่วนขยาย.bat
หรือ.cmd
และเรียกใช้ไฟล์จากพรอมต์คำสั่ง ควรแจ้งให้คุณป้อนช่วงที่อยู่ IP
โปรดป้อนที่อยู่ IP สามชุดเท่านั้น
@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
เมื่อคำสั่งรันแล้วมันจะสร้างชื่อไฟล์ข้อความpingnet.log
ในรูทของไดรฟ์ C ไฟล์ดังกล่าวควรแสดงรายการที่อยู่ IP ที่ใช้แล้วและที่ว่างลง (ฟรี)
ตัวอย่างเช่น:
10.2.214.1 UP
10.2.214.2 UP
10.2.214.3 UP
10.2.214.4 DOWN
มันค่อนข้างง่ายต่อการวิ่งและควรช่วยคุณประหยัดเวลา
Angry IP Scanner นั้นยอดเยี่ยม แต่ฉันชอบเครื่องมือของ CLI ดูว่าคุณสามารถทำให้สคริปต์ PowerShell นี้ทำงานใน Vista ได้หรือไม่ https://github.com/webstersprodigy/PowerSploit/blob/Portscan/Recon/Invoke-Portscan.ps1
ฉันยังแนะนำให้เข้าถึง Linux CLI โดยใช้ linux live cd / usb, dual boot หรือ vm ใน VirtualBox (ติดตั้ง VirtualBox เพิ่ม vm ใหม่ติดตั้ง Debian) linux CLI นั้นมีค่ายิ่ง
จาก linux CLI ให้เรียกใช้สิ่งต่อไปนี้:
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
ปรับสำหรับช่วงเครือข่ายของคุณ (ส่วน '172.10.1') และคุณปิด สิ่งนี้จะให้รายการของโฮสต์ทั้งหมดบนเครือข่ายที่ตอบสนองต่อคำขอ ICMP echo (ping) และแก้ไขพวกเขากับเซิร์ฟเวอร์ DNS ของคุณ
หมายเหตุ: นี่ไม่ใช่วิธีที่น่าเชื่อถือที่สุดในการทดสอบโฮสต์สดเนื่องจากอาจถูกบล็อกด้วย ICMP
nmap -sP 192.168.1.0/24
หมายเหตุ: Nmap เชื่อถือได้มากกว่าเนื่องจากเป็นสแกนเนอร์พอร์ตและยึดผลการดำเนินการตามกิจกรรมเป็นมากกว่าการตอบกลับ ICMP มันถูกใช้อย่างหนักโดย pentesters และคุ้มค่ากับการเรียนรู้