4

次のコードを使用して接続を受信します。

socat TCP-LISTEN:4000,fork EXEC:"./myscrpit"

スクリプトに送信者のIPアドレスが必要ですが、SOCAT_PEERADDR設定されていません。何が問題ですか?

4

3 に答える 3

6

pktinfoそのためのオプションを使用しTCP-LISTENて、次のコードを使用します。

socat TCP-LISTEN:4000,pktinfo,fork EXEC:"./myscrpit

于 2011-11-27T11:08:51.210 に答える
1

情報のためだけですが、答えではありません。このコマンドは私のために働きます:

socat tcp-listen:12345 exec:./script

ただし、このコマンドは次のことを行いません。

socat exec:./script tcp-listen:12345

この情報がお役に立てば幸いです。私にとって、アドレスペアが機能しない場合は、ペアの順序を交換することが機能する可能性があります。

于 2015-09-17T14:21:38.700 に答える
0

これが問題のようです。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が表示されます。

于 2021-05-14T07:22:40.453 に答える