텔넷 연결에 Ctrl+D를 보낼 것으로 예상됩니다.

텔넷 연결에 Ctrl+D를 보낼 것으로 예상됩니다.

텔넷 세션에 자동으로 연결하기 위해 예상 파일을 사용하고 싶습니다. 프로세스는 다음과 같습니다.

  • 특정 IP와 포트에 연결하면 다음과 같이 표시됩니다.escape character is ]
  • 그 후에 우리는 Ctrl+D

\x04Ctrl+ 를 보내는 Expect 파일 을 작성했습니다 D. 파일을 실행하면 연결은 잘 되는데 Ctrl키보드에서 +를 달라고 하네요 . 하지만 스크립트 자체에서 D자동으로 +를 입력하고 싶습니다 . 어떤 작업도 수동으로 수행해서는 안 됩니다.CtrlD

방법을 설명해 주실 수 있나요?

답변1

예상 쉘을 사용하지 않고도 텔넷을 자동으로 종료할 수 있습니다.

sleep <n> | telnet <server> <port>

N- 자동으로 종료되기 전에 대기하는 시간(초)입니다. 0.5와 같은 소수일 수 있습니다. 일부 필수 출력은 지정된 대기 시간 내에 반환되지 않을 수 있습니다. 따라서 그에 따라 증가해야 할 수도 있습니다.

섬기는 사람- 대상 서버 IP 또는 호스트 이름.

포트- 대상 서비스 포트 번호.

다음과 같이 출력을 파일로 리디렉션할 수도 있습니다.

sleep 1 | telnet <server> <port> > output.log

답변2

이스케이프 문자를 보다 쉽게 ​​보낼 수 있는 문자로 변경하는 것이 좋습니다 expect. 예를 들어 느낌표를 보내지 않는다는 것을 알고 있다면 느낌표를 이스케이프 문자로 사용하세요.

$ telnet -e ! 10.1.2.3 80
Telnet escape character is '!'.
Trying 10.1.2.3...
Connected to 10.1.2.3.
Escape character is '!'.
GET!
telnet> quit
Connection closed.

답변3

ctrl+ V, ctrl+를 입력하여 D원하는 스크립트에서 리터럴 바이트 시퀀스를 가져올 수 있습니다. 예상대로 ctrl+를 대화식으로 입력한 것처럼 이 메시지가 전송됩니다 D.

관련 정보