次のコードを使用して接続を受信します。
socat TCP-LISTEN:4000,fork EXEC:"./myscrpit"
スクリプトに送信者のIPアドレスが必要ですが、SOCAT_PEERADDR
設定されていません。何が問題ですか?
pktinfo
そのためのオプションを使用しTCP-LISTEN
て、次のコードを使用します。
socat TCP-LISTEN:4000,pktinfo,fork EXEC:"./myscrpit
情報のためだけですが、答えではありません。このコマンドは私のために働きます:
socat tcp-listen:12345 exec:./script
ただし、このコマンドは次のことを行いません。
socat exec:./script tcp-listen:12345
この情報がお役に立てば幸いです。私にとって、アドレスペアが機能しない場合は、ペアの順序を交換することが機能する可能性があります。
これが問題のようです。SOCAT_PEERADDRは、シェルを生成するために必要なアクセスするための環境変数です。socat-manpage(で取得)が示すように、これには。の代わりにman socat
アドレスタイプを使用する必要があります。SYSTEM:
EXEC:
デモsocat
: v1.7.3.3で必要に応じて以下を実行しました。
socat TCP-LISTEN:4000,fork SYSTEM:'echo "${SOCAT_PEERADDR}"'
確認するには、別の端末から、
nc localhost 4000
これにより、IPが表示されます。