들어갈때 netcat [ip address] [port]
비밀번호를 달라고 하는데 사실 비밀번호를 알고있는데 날짜에요.
그러나 netcat IP와 포트 번호를 입력한 다음 날짜 목록을 반복하는 스크립트를 만들고 싶습니다. 올바른 비밀번호가 포함된 대규모 날짜 목록을 만들었지만 원하는 작업을 수행하는 스크립트를 만드는 방법을 잘 모르겠습니다. 비밀번호(날짜)는 ddmmyyyy 형식입니다. 도움을 주시면 정말 감사하겠습니다!
내가 하고 싶은 일이 무엇인지 알아보기 위해...
1) Script automatically enters: netcat [ip address] [port]
2) Script automatically enters: 01012000
3) Script automatically enters: netcat [ip address] [port]
4) Script automatically enters: 02012000
..................
500) Script automatically enters: netcat [ip address] [port]
501) Script automatically enters: 10082001 (CORRECT PASSWORD) Script end
*비밀번호가 정확할 때 스크립트를 종료할 필요는 없습니다. 이는 좋지만 필수는 아닙니다. 저는 이 개념을 먼저 구현하려고 합니다.
답변1
중괄호 확장을 사용하여 연속 날짜를 만들고 입력을 netcat으로 파이프할 수 있습니다.
#!/bin/bash
for date in 2021-01-{01..31}; do
echo $date | netcat somehost ...
done
또는 조금 더 복잡합니다 for date in 2021-{01-{01..31},02-{01..02}}; do ...
.
또는 파일에서 읽습니다 while read -r date; do ...; done < dates.txt
.
특히 원격 장치가 사용자가 제공한 명령으로 연결을 닫지 않는 경우 netcat을 제 시간에 종료하는 방법을 확인하고 싶을 수 있습니다. netcat에는 여러 버전이 있습니다. 내 버전에는 다음 옵션이 있습니다.
-q seconds
stdin에서 EOF 후 지정된 시간(초)을 기다린 후 종료합니다.