Ottenere IP del client da Ruby sceneggiatura attraverso xinetd
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!
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