在Solaris 10主机上,有一个inetd服务配置为当它获得到预先配置的端口/服务的传入TCP连接时启动bash脚本。有没有办法在被调用的bash脚本中找到远程客户端的IP地址?Solaris10:如何获取inted-started bash脚本中的远程IP地址?
如果我使用的是GNU版本的inetd,我会使用--environment
命令行标志。但我正在使用默认的Solaris版本的inetd/inetadm,它似乎不支持此标志。是否有与此设置相同的Solaris?
我还以为getpeername(2)
调用上的0(stdin
)或1(stdout
)的fd
将返回所需的信息,但我运行bash脚本,我似乎还没有找到一种方法来调用等效来自bash的getpeername(2)
。
我唯一的选择是调用一个C-wrapper,它会做getpeername(2)
,将它存储在一个环境变量(或命令行参数)中,并调用主bash脚本?
谢谢!
谢谢你的快速和全面的答案!我通过收紧grep模式并使用'cut'而不是'nawk'来进一步进一步。 – evolvah 2012-07-16 21:06:00