ส่งออกเฉพาะที่อยู่ IP ของเครื่องออนไลน์ที่มี nmap


19

ฉันรู้วิธีใช้nmapเพื่อค้นหารายชื่อโฮสต์ที่ออนไลน์อยู่ในขณะนี้ สิ่งที่ฉันอยากทำคือรับรายการที่อยู่ IP ของพวกเขาเท่านั้นตอนนี้มันแสดงข้อมูลเพิ่มเติมเช่น

Nmap scan report for 192.168.x.x' and 'Host is up (0.12s latency).

สิ่งที่ฉันต้องการคือสามารถเรียกใช้nmapคำสั่งรับเอกสารข้อความของที่อยู่ IP ที่ออนไลน์อยู่ในขณะนี้

เป็นไปได้ไหม?

คำตอบ:


33

นี่เป็นเรื่องธรรมดา:

nmap -n -sn 192.0.2.0/24 -oG - | awk '/Up$/{print $2}'

ตัวเลือกและคำสั่งอย่างรวดเร็ว:

  • -nปิดการแก้ปัญหาชื่อย้อนกลับเนื่องจากคุณเพียงแค่ต้องการที่อยู่ IP บน LAN ท้องถิ่นนี่อาจเป็นขั้นตอนที่ช้าที่สุดเช่นกันดังนั้นคุณจะได้รับความเร็วที่ดี
  • -snหมายถึง "อย่าทำการสแกนพอร์ต" เช่นเดียวกับรุ่นเก่าที่คัดค้าน-sPด้วย mnemonic "ping scan"
  • -oG -ส่ง"grepable" การส่งออกที่ stdout awkซึ่งได้รับการประปา
  • /Up$/ เลือกเฉพาะบรรทัดที่ลงท้ายด้วย "Up" ซึ่งแสดงถึงโฮสต์ที่ออนไลน์
  • {print $2} พิมพ์ฟิลด์ที่คั่นด้วยช่องว่างที่สองซึ่งเป็นที่อยู่ IP

ทำไมมี $ หลังจากที่/Up? ฉันพบว่าคำสั่งnmap -n -sn 192.0.2.0/24 -oG - | awk '/Up/{print $2}'ให้ผลลัพธ์เหมือนกัน
ไมเคิล

1
@Michael เป็นเพียงระดับความปลอดภัยที่เพิ่มขึ้นเพื่อให้แน่ใจว่าเราจะไม่พิมพ์ขยะในกรณีที่มีสิ่งอื่นที่มีสตริง "Up" วิธีนี้จะทำงานแม้ว่าคุณจะเรียกใช้กับเอาต์พุต grepable ในไฟล์จากการสแกนประเภทอื่น-sVที่สามารถมีสตริงที่ไม่สามารถคาดเดาได้จากแบนเนอร์บริการเครือข่าย
bonsaiviking

3

คุณสามารถส่งไปที่awk:

nmap -sP 192.168.1.0/24 | awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'
192.168.1.1
192.168.1.10
192.168.1.20
192.168.1.30
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.