Nmap: tìm IP miễn phí trong phạm vi


14

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/24nhưng điều này thực sự cho thấy các máy chủ đang lên.


10
không phản hồi với ping không nhất thiết có nghĩa là không sử dụng.
Cấp

1
Bạn muốn một máy quét IPAM, không phải nmap.
TheCleaner

2
Quét khám phá máy chủ của @Grant Nmap (đôi khi được gọi là "ping scan") gửi rất nhiều thăm dò khác nhau, không chỉ các Yêu cầu Echo của ICMP. Đối với các địa chỉ trên cùng một liên kết dữ liệu, nó sử dụng các yêu cầu ARP, về cơ bản là không thể bỏ qua.
bonsaiviking

1
Bạn cũng nên nhớ rằng các máy chủ không được bật nguồn cũng sẽ hiển thị là không có địa chỉ IP.
Tero Kilkanen

Câu trả lời:


24

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:

  1. Bạn phải chạy quét dưới quyền root (hoặc Quản trị viên trên Windows) để gửi yêu cầu ARP, không phải kết nối TCP. Nếu không, quá trình quét có thể báo cáo một địa chỉ là "xuống" khi nó được tường lửa đơn giản.
  2. Bạn chỉ có thể thực hiện việc này từ một hệ thống trên cùng một liên kết dữ liệu (lớp 2) với phạm vi địa chỉ bạn đang quét. Mặt khác, Nmap sẽ cần sử dụng các đầu dò lớp mạng có thể bị chặn bởi tường lửa.

Để 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:

  • Khi bạn sử dụng -vtù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".
  • Thay vì -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 ).
  • Các -ntù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ỉ.
  • Các -oGtù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.


1
Hoàn toàn đánh dấu trang này để sử dụng trong tương lai và thậm chí không phải là câu hỏi của tôi :)
MartinC

1

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.


Khi chạy với đặc quyền gốc, Nmap chỉ cần thực hiện yêu cầu ARP và báo cáo các địa chỉ đáp ứng.
bonsaiviking

0

Đây là điều tương tự trong PowerShell ....

((nmap -v -sn -n 10.208.2.0/24 -oG - ) -match "Status\:\sDown") | foreach {($_).Split(" ")[1]}

0

Đâ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"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.