Mi chiedevo se esistesse un modo semplice per ottenere l'indirizzo IP pubblico di un computer che utilizza Ruby.Ottieni l'indirizzo IP pubblico (remoto)
risposta
Akamai fornisce una "Qual è il mio IP" pagina che è possibile recuperare:
require 'open-uri'
remote_ip = open('http://whatismyip.akamai.com').read
Ci sono alcune alternative che fanno la stessa cosa, però:
- http://whatismyip.akamai.com
- http://ipecho.net/plain
- http://icanhazip.com
- http://ident.me
- http://bot.whatismyipaddress.com
È anche possibile utilizzare i ipv4
e ipv6
sottodomini con icanhazip.com
.
Se non si vuole dipendere da una terza parte, si può rotolare il vostro proprio in un rack applicazione di una riga e distribuire questo gratuitamente su Heroku o qualsiasi altra cosa. Tiene conto che X-Forwarded-For
può contenere un elenco separato da virgole di indirizzi IP proxy e restituisce solo l'IP del client.
# config.ru
run lambda { |env|
remote_ip = env['HTTP_X_FORWARDED_FOR'] || env['REMOTE_ADDR']
remote_ip = remote_ip.scan(/[\d.]+/).first
[200, {'Content-Type'=>'text/plain'}, [remote_ip]]
}
Io uso ricciolo:
my_ip = `curl http://ipecho.net/plain`
Questo non usa Rubino stdlib e richiede ricciolo però.
Nessun graffio necessario!
Io uso ipify, un'API aperta che restituisce il tuo indirizzo IP pubblico. Utile se vuoi una risposta JSON (non mostrata qui).
require 'net/http'
public_ip = Net::HTTP.get URI "https://api.ipify.org"
=> "12.3.45.678"
oppure con l'arricciatura:
public_ip = `curl https://api.ipify.org`
=> "12.3.45.678"
Non ti agitare, che non è il mio indirizzo IP pubblico :)
userei un servizio come http://www.whatsmyip.website/ da ottenere programatically l'IP . L'utilizzo di qualcosa come Linux curl restituirà automaticamente solo l'IP, ma se usi una lingua/applicazione diversa potresti dover controllare la loro API.
ip = `curl http://www.whatsmyip.website`
Sto cercando lo stesso problema e ho trovato un'ottima soluzione basata su API.
per ottenere l'indirizzo IP pubblico possiamo in grado di utilizzare il codice qui sotto:
require "net/http"
ip = Net::HTTP.get(URI("https://api.ipify.org"))
puts "My public IP Address is: " + ip
Url API del sito: https://www.ipify.org/
E 'troppo tardi per asnwer su questo, ma ho pensato che potrebbe essere halpful per gli altri .
- 1. Azure PowerShell: Ottieni IP di servizio pubblico virtuale
- 2. Python: Ottieni indirizzo IP locale utilizzato per inviare dati IP a uno specifico indirizzo IP remoto
- 3. Ottieni il proprio indirizzo IP
- 4. Ottenere il mio IP pubblico tramite API
- 5. Ottieni l'indirizzo IP dell'utente
- 6. Ottieni college/università dall'indirizzo IP
- 7. Ottieni l'indirizzo IP utilizzando javascript
- 8. Ottieni nome host dall'indirizzo IP
- 9. Ottieni JSON remoto senza Jquery?
- 10. Amazon ec2 non funziona quando si accede tramite IP pubblico
- 11. Rileva se l'indirizzo IP pubblico è dinamico o statico
- 12. Rails 4.2 server; IP privato e pubblico non funziona
- 13. come usare il mio IP pubblico con HttpListener
- 14. Obiettivo C - Come ottenere l'indirizzo IP pubblico del dispositivo
- 15. Come ottenere l'indirizzo IP pubblico di un utente in C#
- 16. Ottieni l'indirizzo IP del client nell'hub SignalR self-hosted
- 17. Modifica l'indirizzo IP pubblico dell'istanza EC2 senza stop/start o elastico IP
- 18. Ottieni l'indirizzo IP dell'utente nel framework zend
- 19. Ottieni un indirizzo IP reale utilizzando CloudFlare
- 20. Ottieni il mio indirizzo IP wifi Android
- 21. Ottieni l'indirizzo IP usando Action Script?
- 22. Ottieni l'ISP di un IP in node.js
- 23. Ottieni l'indirizzo IP in un'applicazione console
- 24. Ottieni l'indirizzo IP del cliente in Sinatra?
- 25. Ottieni l'indirizzo IP locale in Qt
- 26. Ottieni l'indirizzo IP da una stringa (Groovy)
- 27. Ottieni l'indirizzo IP del client in JSP
- 28. Connessione SQL con IP pubblico, istanza denominata e numero di porta
- 29. Ottieni l'indirizzo IP reale del client su Heroku
- 30. Ottieni il valore di registro remoto
Recupera [whatismyip] (http://www.whatismyip.com/) e analizzalo. :) –
quali informazioni hai in mano? il nome di dominio?Se l'utente si collega direttamente al tuo server, allora l'IP del client è l'IP pubblico – ShadyKiller
Dove verrà eseguito il codice sul computer dell'utente finale? stanno già parlando con un server esterno (richiesta web IE) – Doon