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()

詳細については、ソケットモジュールのドキュメントソケットの使い方、 またはソケットチュートリアル

関連情報