다음 "curl" 명령을 bash 스크립트에 삽입하고 IP 주소에 대한 호스트 파일에 대해 실행한 다음 출력 파일에 성공 또는 실패로 출력을 표시하고 싶습니다.
curl -v telnet 10.10.10.10:22
가능합니까?
답변1
나는 아직 컬이 SSH나 텔넷에서 작동하지 않는다고 주장하는 게시물에 댓글을 달 만큼 필요한 평판을 얻지 못했습니다. 이는 정확하지 않습니다. Curl은 telnet, ssh, scp, sftp, ftps 등을 포함한 다양한 프로토콜을 처리할 수 있습니다.
이것은 컬의 올바른 구문입니다.
curl -v telnet://127.0.0.1:22
답변2
열려 있는 포트를 확인하기 위해 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"
답변3
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