socat:送信者のIPアドレスを取得する

私は次のコードを使って接続を受け取ります:

socat TCP-LISTEN:4000、フォークEXEC: "./ myscrpit"

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

3
スクリプト(少なくとも SOCAT_PEERADDR を印刷する部分)を教えてください。
追加された 著者 cnicutar,
それは私のために働くので、何かがあるはずです。あなたはラインに到達していると確信していますか?どちらのバージョンを使用していますか(私は 1.7.1.3-3 を使用しています)。
追加された 著者 cnicutar,
あなたはそれを正しく印刷していると確信していますか? :-)
追加された 著者 cnicutar,
この問題を解決するために私のスクリプトは SOCAT_PEERADDR を印刷します: echo $ SOCAT_PEERADDR
追加された 著者 Shahryar,
すべての環境変数を export しますが、 socat 環境変数はありません!!! (私はあなたと同じバージョンを使用しています)
追加された 著者 Shahryar,
環境変数は設定されていません。
追加された 著者 Shahryar,

2 答え

TCP-LISTEN pktinfo オプションを使用してください。

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

4
追加された

情報だけではなく、答えではありません。このコマンドは私の仕事です:

socat tcp-listen:12345 exec:./script

しかし、このコマンドはそうではありません:

socat exec:./script tcp-listen:12345

この情報が役立つことを願っています。私には、アドレスのペアが機能しない場合、ペアの順序を交換することができます。

0
追加された
もしあなたの./scriptがSTDOUTに何も吐き出さなければ、通信はありません
追加された 著者 JSmyth,