훌륭한 명령은 응답하는 IP 주소만 표시합니다.
nmap -n -sn 192.168.1.0/24 -oG - | awk '/Up$/{print $2}'
모든 것을 탐색하고 응답하지 않는 일부를 찾는 것은 고통스러울 수 있습니다(무료 IP를 할당하려는 경우). 응답하지 않는 주소만 표시하는 행이 있습니까?
답변1
nmap
자세한 옵션이 있습니다 -v
:
자세한 정보 및 디버깅 옵션
-v
(상세 수준 증가),-vlevel
(상세 수준 설정)Nmap이 진행 중인 스캔에 대한 더 많은 정보를 인쇄하도록 하려면 상세 수준을 높이세요.
응답한 호스트뿐만 아니라 검색된 모든 호스트를 표시하고 응답하지 않은 호스트의 상태도 표시합니다 Down
. 따라서 Down
대신 결과 필터링을 사용하십시오 Up
.
nmap -n -sn -v 192.168.1.0/24 -oG - | awk '/Down$/{print $2}'
결과의 첫 번째 및 마지막 요소는 일반적으로 시스템에서 사용할 수 없는 네트워크(여기서는 192.168.1.0) 및 브로드캐스트 주소(192.168.1.255)이므로 제거해야 합니다. 주문이 보장되지 않으므로 버전 주문도 필요합니다.
nmap -n -sn -v 192.168.1.0/24 -oG - | grep '^Host:' | sort -k 2 -V | tail -n +2 | head -n -1 | awk '/Down$/{print $2}'
참고: 와 같은 도구를 nmap
사용하여 스크립트에서 -oX -
사용할 때 더 신뢰할 수 있는 XML 출력(사용)이 있습니다. 아쉽게도 JSON만큼 도구를 사용하기가 쉽지 않아서 해당 형식을 시도하지 않았습니다.xmlstarlet
xmllint
jq
답변2
nmap을 사용하는 이유는 무엇입니까? 나는 이렇게 할 것이다:
for ((i=0;i<255;i++)); do ping -W 1 -c 1 192.168.1.${i} >/dev/null 2>&1 || echo "192.168.1.${i} is available" ; done
알아채다:
-W 1
시간 초과를 1초로 설정하면 됩니다.-c 1
즉, 종료하기 전에 ICMP 에코 요청을 하나만 보내십시오.