web-dev-qa-db-ja.com

netcatなしでリスニング用のポートを開くことは可能ですか?

LinuxシステムがTCPポートでリッスンし、受信したものをファイルやstdoutにダンプする必要があります。システムにnetcatがインストールされていません。root権限はありますが、コンプライアンス上の理由から、システムに新しいアプリケーションを追加することは許可されていません。単純なbash、Perl、またはpythonスクリプト)を使用してこれを行うことは可能ですか?単純であるほど優れています。

3
MrDrMcCoy

Pythonを使用してランダムポートを開くには:

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

開いたポートを確認するには:

s.getsockname()[1]

ポートを閉じるには:

s.close()

詳細については、 ソケットモジュールのドキュメントソケットのハウツー 、または ソケットのチュートリアル を参照してください。

3
John1024