我使用以下代码接收连接:
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 是一个要访问的环境变量,您需要生成一个shell。正如 socat 手册页(通过 获得man socat
)所暗示的,SYSTEM:
应该使用地址类型而不是EXEC:
.
Demosocat
: 对v1.7.3.3执行以下操作。
socat TCP-LISTEN:4000,fork SYSTEM:'echo "${SOCAT_PEERADDR}"'
要从另一个终端检查,请运行
nc localhost 4000
这应该向您显示您的IP。