Có cách nào để quét IP miễn phí trên mạng không? Tôi sử dụng nmap -sP 192.168.1.0/24
nhưng điều này thực sự cho thấy các máy chủ đang lên.
Có cách nào để quét IP miễn phí trên mạng không? Tôi sử dụng nmap -sP 192.168.1.0/24
nhưng điều này thực sự cho thấy các máy chủ đang lên.
Câu trả lời:
Sử dụng Nmap như thế này là một cách khá chính xác để thực hiện những gì bạn yêu cầu, miễn là một số điều kiện tiên quyết là đúng:
Để có được các địa chỉ "khả dụng", bạn cần lấy danh sách các địa chỉ mà Nmap báo cáo là "xuống". Bạn có thể làm điều này với một lệnh awk đơn giản:
sudo nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'
Tóm tắt các tùy chọn Nmap được sử dụng:
-v
tùy chọn, Nmap sẽ in các địa chỉ mà nó tìm thấy là "xuống" ngoài các địa chỉ "lên".-sP
, tôi đã thay thế cách đánh vần mới hơn -sn
, vẫn hoàn thành việc quét tương tự, nhưng có nghĩa là "bỏ qua quét cổng" thay vì "quét Ping" gây hiểu lầm (vì giai đoạn phát hiện máy chủ không nhất thiết có nghĩa là quét ICMP Echo hoặc Ping ).-n
tùy chọn bỏ qua tra cứu DNS ngược, mà mua cho bạn một chút thời gian, vì bạn không quan tâm đến tên nhưng chỉ IP địa chỉ.-oG
tùy chọn cho Nmap để đầu ra Grepable định dạng, đó là dễ dàng hơn cho awk để xử lý. Đối số " -
" bảo nó gửi đầu ra này tới thiết bị xuất chuẩn.Lệnh awk sau đó tìm kiếm "Trạng thái: Xuống" và in trường thứ hai, chứa địa chỉ IP.
Tất nhiên, nếu bạn có quyền truy cập vào cấu hình đang chạy của công tắc hoặc cho thuê máy chủ DHCP, bạn có thể nhận được câu trả lời này một cách có thẩm quyền hơn mà không cần thực hiện quét có thể đặt báo thức bảo mật.
Không chắc chắn về n-map, nhưng người ta có thể giả định một cách hợp lý rằng nếu bạn viết một tập lệnh ping gửi 1 ping đến mỗi địa chỉ mà bất kỳ máy chủ nào quay lại với "đích không thể truy cập" là không có, và bất cứ điều gì quay lại "hết thời gian yêu cầu" bị chiếm đóng nhưng không đáp ứng với ping. Sự khác biệt giữa hai phản hồi là "không thể truy cập đích" không nhận được phản hồi cho yêu cầu ARP của nó. "Hết giờ yêu cầu" nghĩa là một cái gì đó đã đáp ứng yêu cầu ARP, nhưng không phải là gói ICMP.
Đây là một cái khác lấy cảm hứng từ Anders Larsson
cho ip trong 172,18.5. {129..254}; làm {ping -c 1 -W 1 $ ip; } &> / dev / null | | echo $ ip & xong | sắp xếp
Điều đó có nghĩa là: "Cố gắng ping tất cả các Ips trong phạm vi. Nếu" ping "không in được IP đó"
Nếu bạn làm
nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'
Hoạt động nhanh, nhưng tôi nhận thấy một số máy chủ được báo cáo là "Xuống" thực sự là "Lên"