通过xinetd从Ruby脚本获取客户端IP

时间:2010-08-27 18:23:21

标签: ruby sockets stdin inetd

如何从xinetd通过流套接字启动的Ruby脚本中获取客户端IP地址? 在PHP中,我只使用stream_socket_get_name(STDIN, true);

提前致谢!

1 个答案:

答案 0 :(得分:2)

经过大量搜索解决方案,甚至试图在Freenode上的#ruby频道上询问并完全被忽略后,我终于找到了解决方案:

def to_ip(addr)
  (4...8).map{|x|addr[x]}.join('.')
end

socket = Socket.for_fd(STDIN.fileno)
ip = to_ip(socket.getpeername)

希望这有助于某人!