Вопрос

Как я могу получить IP-адрес клиента из-за скрипта Ruby, который запускается Xinetd через розетку потока? В PHP я бы просто использовал stream_socket_get_name(STDIN, true);

Заранее спасибо!

Это было полезно?

Решение

После поиска много для решения, и даже пытаясь спросить на #Ruby Channel на Freenode и быть полностью игнорированным, я наконец нашел решение:

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

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

Надеюсь, это поможет кому-то!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top