netcat 없이 청취를 위해 포트를 열 수 있습니까?

netcat 없이 청취를 위해 포트를 열 수 있습니까?

Linux 시스템이 TCP 포트에서 수신 대기하고 수신한 내용을 파일 및/또는 stdout으로 덤프해야 합니다. 시스템에 netcat이 설치되어 있지 않습니다. 루트 권한이 있지만 규정 준수상의 이유로 시스템에 새 애플리케이션을 추가할 수 없습니다. 간단한 bash, Perl 또는 Python 스크립트를 사용하여 이를 수행할 수 있습니까? 간단할수록 좋습니다.

답변1

Python을 사용하여 임의 포트를 열려면:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((socket.gethostname(), 0))

어떤 포트를 열었는지 확인하려면:

s.getsockname()[1]

포트를 닫으려면:

s.close()

자세한 내용은 다음을 읽어보세요.소켓 모듈에 대한 문서,소켓 사용법, 또는소켓 튜토리얼.

관련 정보