nmap은 온라인 머신의 IP 주소만 출력합니다.

nmap은 온라인 머신의 IP 주소만 출력합니다.

nmap나는 현재 온라인에 있는 호스트 목록을 찾는 방법을 알고 있습니다 . 내가 원하는 것은 IP 주소 목록을 얻는 것인데 이제 다음과 같은 추가 정보가 표시됩니다.

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

nmap내가 원하는 것은 명령을 실행 하고 현재 온라인 IP 주소에 대한 텍스트 문서를 얻을 수 있는 것입니다.

이것이 가능한가?

답변1

일반적인 상황은 다음과 같습니다.

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

옵션 및 명령에 대한 간략한 개요:

  • -nIP 주소만 필요하므로 역방향 이름 확인을 끄십시오. 로컬 LAN에서는 아마도 가장 느린 단계이므로 속도가 크게 향상될 수 있습니다.
  • -sn이는 "포트 스캐닝 없음"을 의미합니다. 이전 버전과 동일하지만 -sP니모닉 "핑 스캔"이 더 이상 사용되지 않습니다.
  • -oG -보내다"grepable" 출력로 파이프되는 stdout으로 awk.
  • /Up$/호스트가 온라인 상태임을 나타내려면 "Up"으로 끝나는 줄만 선택하십시오.
  • {print $2}IP 주소인 두 번째 공백으로 구분된 필드를 인쇄합니다.

답변2

다음으로 파이프할 수 있습니다 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

답변3

또한 다음과 같이 및 를 조합 awk하여 사용할 수 있습니다 .grepcut

wolf@linux:~$ nmap -sn -oG - 192.168.0.* | grep Up | cut -d ' ' -f 2
192.168.0.7
192.168.0.8
192.168.0.9
wolf@linux:~$

답변4

GNU 버전 7 이상에서는 sort더 예쁜 숫자 정렬을 위한 옵션을 사용할 수 있습니다.-V

nmap -n -sn 192.168.0.0/24 -oG - | awk '/Up$/{print $2}' | sort -V
192.168.0.2
192.168.0.3
192.168.0.21
192.168.0.22

관련 정보