UP 인 IP 목록을 가져 오려고하므로 nmap
먼저 모든 IP를 텍스트 파일에 저장하는 데 사용 됩니다.
nmap -v -sn 10.10.10.1-254 -oG hosts.txt
이제 nmap
이러한 IP에서 다른 명령 을 실행 하여 텍스트 파일에서 IP를 구문 분석하고 가져 오려고합니다. 다음을 시도하고 있지만 작동하지 않습니다. 변수에 v
저장된 IP 값이 없습니다.
#!/bin/bash
while read line; do
v=$line|grep 'Up' -B1|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'
echo $v
done < hosts.txt
스크립트가 제대로 작성되지 않은 것 같습니다.
v=$line | grep [...]
변수를 할당하면 출력이 없으므로 grep
.
아마 점에 간단하게 될 것입니다 awk
귀하의 hosts.txt
파일 :
$ nmap -v -sn 10.10.10.1/24 -oG hosts.txt > /dev/null 2>&1
$ awk '$NF=="Up" { print $2 }' hosts.txt
생성 된 파일의 형식이 주어지면 nmap
(다른 IP 범위를 용서하십시오. 분명히 다른 네트워크에 있지만 예제는 여전히 유효합니다) :
$ head hosts.txt
# Nmap 7.60 scan initiated Fri May 11 10:14:28 2018 as: nmap -v -sn -oG hosts.txt 172.28.9.67/24
# Ports scanned: TCP(0;) UDP(0;) SCTP(0;) PROTOCOLS(0;)
Host: 172.28.9.0 (hostname1.internal) Status: Up
Host: 172.28.9.1 (hostname2.internal) Status: Up
우리가를 보여주는 호스트에게만 관심이 있다면 Status: Up
, 도움이되는 마법의 단어는 줄의 마지막 단어입니다. 그래서 우리 awk
는 마지막 필드가와 같은 줄만보고 Up
두 번째 필드를 인쇄합니다 (즉, IP 주소).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다