【发布时间】:2012-07-16 20:42:55
【问题描述】:
在 Solaris 10 主机上,配置了一个 inetd 服务,以在它获得到预配置端口/服务的传入 TCP 连接时启动 bash 脚本。有没有办法在调用的 bash 脚本中找到远程客户端的 IP 地址?
如果我使用的是 GNU 版本的 inetd,我会使用 --environment 命令行标志。但是我使用的是默认的 Solaris 版本的 inetd/inetadm,它似乎不支持这个标志。有与此设置等效的 Solaris 吗?
我还假设在 0 (stdin) 或 1 (stdout) 的 fd 上调用 getpeername(2) 会返回所需的信息,但我正在运行 bash 脚本,但我似乎没有找到一种从 bash 调用等效于 getpeername(2) 的方法。
我唯一的选择是调用一个可以执行 getpeername(2) 的 C 包装器,将其存储在环境变量(或命令行参数)中,然后调用主 bash 脚本吗?
谢谢!
【问题讨论】:
标签: bash solaris solaris-10 inetd