Domanda

Come posso ottenere l'indirizzo IP del client dall'interno di uno script di Ruby che viene lanciato da xinetd attraverso una presa di corrente? In PHP Vorrei solo usare stream_socket_get_name(STDIN, true);

Grazie in anticipo!

È stato utile?

Soluzione

Dopo aver cercato un sacco per la soluzione, e anche cercando di chiedere sul canale #ruby su Freenode e di essere completamente ignorato, ho finalmente trovato la soluzione:

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

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

Spero che questo aiuti qualcuno!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top