Pregunta

¿Cómo puedo obtener la dirección IP del cliente desde el interior de un script Ruby que se puso en marcha por xinetd través de una toma de corriente? En PHP me acaba de utilizar stream_socket_get_name(STDIN, true);

Gracias de antemano!

¿Fue útil?

Solución

Después de buscar mucho para la solución, e incluso tratando de preguntar en el canal #ruby en Freenode y ser completamente ignorado, por fin he encontrado la solución:

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

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

Espero que esto ayude a alguien!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top