Articles
curl 명령
On 12월 31, 2020 by adminID는 다음 “curl”명령을 bash 스크립트에 연결하고 호스트 파일에 대해 실행하는 것을 선호합니다. 그러면 IP 주소의 개수가 출력 파일에 성공 또는 실패로 출력을 표시합니다.
curl -v telnet 10.10.10.10:22
가능합니까?
답변
Bash 내장을 사용하여 열린 포트를 확인하는 것도 작동 할 수 있습니다.
#!/bin/bash host_file=/path/to/file.txt out_file=/path/to/out.txt while read -r ip; do if timeout 5 bash -c "cat < /dev/null >/dev/tcp/${ip}/22"; then echo -e "${ip}\tSuccess" else echo -e "${ip}\tFailure" fi >> "$out_file" done < "$host_file"
댓글
- ' 이것을 몰랐습니다. 어디에나 문서화되어 있습니까? IPv6에서도 작동합니까?
- @Tomasz : bash 참조 매뉴얼 3.6에 설명 된 ' 리디렉션 . ' ipv6에서 작동하는지 확실하지 않습니다.
답변
저는 curl이 ssh 나 telnet을위한 것이 아니라고 주장하는 게시물에 대해 논평 할만한 평판이 아직 없습니다. 정확하지 않습니다. Curl은 telnet, ssh, scp, sftp, ftps 등을 포함한 다양한 프로토콜을 처리합니다.
다음은 curl의 올바른 구문입니다.
curl -v telnet://127.0.0.1:22
Answer
curl
는 HTTP / HTTPS / FTP 용입니다. SSH 또는 Telnet이 아닙니다.
netcat을 사용하겠습니다.
testport=22 # 22 for ssh; 23 for telnet; 80 for HTTP; etc. while read ip; do if nc -w2 -z $ip $testport; then echo $ip up else echo $ip down fi >> testresults.txt done < hostlist.txt
답글 남기기