Tôi có một loạt các máy trên dải địa chỉ IP mà tôi muốn ping đồng thời như một cách nhanh chóng và bẩn thỉu để biết máy nào được bật. Tôi có thể sử dụng phần mềm (miễn phí) nào để làm việc này?
Tôi đang sử dụng Windows Vista .
Tôi có một loạt các máy trên dải địa chỉ IP mà tôi muốn ping đồng thời như một cách nhanh chóng và bẩn thỉu để biết máy nào được bật. Tôi có thể sử dụng phần mềm (miễn phí) nào để làm việc này?
Tôi đang sử dụng Windows Vista .
Câu trả lời:
Cách nhanh nhất là sử dụng Angry IP Scanner
Tôi sử dụng nó cho cùng một cách bạn muốn!
Nmap có sẵn cho Windows:
# nmap -sP 10.0.10.1-100
-sn
để chạy "không quét cổng", chỉ tìm kiếm máy chủ.
Tôi đã sử dụng lệnh này
for %%i in 200 to 254 do ping 10.1.1.%%i
trong một tệp bó vì một lý do tương tự
Đây là dải địa chỉ IP như bạn có thể nhận thấy trong:
Thay vì ping thủ công tất cả các địa chỉ IP trên mạng LAN của bạn, bạn có thể làm như sau:
Mở một Dấu nhắc Lệnh và gõ:
FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
-n 1
có nghĩa là chỉ có 1 gói ping sẽ được gửi đến mỗi máy tính.
Thay đổi 192.168.0
để phù hợp với ID mạng của riêng bạn.
Điều này sẽ ping tất cả các địa chỉ IP trên phân đoạn mạng 192.168.0.0 và tạo một tệp văn bản có tên ipaddresses.txt
trong C: \, trong đó nó sẽ chỉ liệt kê các địa chỉ IP đã trả lời.
Bạn cũng có thể thêm -a
vào lệnh ping để giải quyết tất cả các địa chỉ IP phản hồi thành tên máy chủ, nhưng làm như vậy sẽ khiến tập lệnh mất một thời gian đáng kể để hoàn tất:
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
Bạn chỉ có thể viết một tập lệnh Bash lặp qua một dải địa chỉ IP và ping chúng. Một ví dụ cho thấy địa chỉ ping trong phạm vi 10.1.1.1 đến 10.1.1.255 (đã bao gồm):
for i in {100..255}
do
ping 10.1.1.$i
done
ping 10.1.1.i
có lẽ muốn được ping 10.1.1.$i
.
Lưu tập lệnh bên dưới trên máy chủ với phần mở rộng .bat
hoặc .cmd
và gọi tệp từ dấu nhắc lệnh. Nó sẽ nhắc bạn nhập phạm vi địa chỉ IP.
Vui lòng chỉ nhập ba octet của địa chỉ 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
Khi lệnh đã chạy, nó sẽ tạo một tên tệp văn bản pingnet.log
trong thư mục gốc của ổ đĩa C. Tập tin đó sẽ cung cấp cho bạn một danh sách các địa chỉ IP được sử dụng và xuống (miễn phí).
Ví dụ:
10.2.214.1 UP
10.2.214.2 UP
10.2.214.3 UP
10.2.214.4 DOWN
Nó khá đơn giản để chạy, và nó sẽ giúp bạn tiết kiệm rất nhiều thời gian.
Angry IP Scanner rất tuyệt, nhưng tôi thích các công cụ CLI. Xem nếu bạn có thể có được tập lệnh powershell này chạy trong Vista. https://github.com/webstersprodigy/PowerSploit/blob/Portscan/Recon/Invoke-Portscan.ps1
Tôi cũng đề nghị truy cập vào Linux CLI bằng cách sử dụng đĩa cd / usb trực tiếp linux, khởi động kép hoặc vm trong VirtualBox. (Cài đặt VirtualBox, thêm vm mới, cài đặt Debian.) CLI linux là vô giá.
Từ một CLI linux, hãy chạy như sau:
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
Điều chỉnh cho phạm vi mạng của bạn (phần '172.10.1') và bạn tắt. Điều này sẽ cung cấp một danh sách tất cả các máy chủ lưu trữ trên mạng đáp ứng các yêu cầu ICMP echo (ping) và giải quyết chúng đối với máy chủ DNS của bạn.
Lưu ý: Đây không phải là cách đáng tin cậy nhất để kiểm tra các máy chủ trực tiếp vì chúng có thể bị chặn ICMP.
nmap -sP 192.168.1.0/24
Lưu ý: Nmap đáng tin cậy hơn vì nó là một trình quét cổng và dựa trên kết quả của nó trên hoạt động không chỉ là phản hồi của ICMP. Nó được sử dụng nhiều bởi các pentesters và đáng để học hỏi.