我想知道是否有一種簡單的方法來獲取使用Ruby的計算機的公共IP地址。獲取公共(遠程)IP地址
15
A
回答
26
的Akamai提供了一個 「什麼是我的IP」 頁面,您可以獲取:
require 'open-uri'
remote_ip = open('http://whatismyip.akamai.com').read
有跡象表明,做同樣的事情了幾個備選方案,但:
- http://whatismyip.akamai.com
- http://ipecho.net/plain
- http://icanhazip.com
- http://ident.me
- http://bot.whatismyipaddress.com
您還可以使用ipv4
和ipv6
子域與icanhazip.com
。
如果你不想依賴第三方,你可以在一個單線機架應用程序中推出你自己的應用程序,並在Heroku或其他任何應用程序上免費部署它。它考慮到X-Forwarded-For
可能包含以逗號分隔的代理IP地址列表,並且只返回客戶端IP。
# 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]]
}
1
我用捲曲:
my_ip = `curl http://ipecho.net/plain`
這不使用Ruby stdlib的,需要捲曲雖然。
3
不需要刮!
我使用ipify,這是一個打開的api,返回您的公共ip地址。如果你想要一個json響應(這裏沒有顯示)很有用。
require 'net/http'
public_ip = Net::HTTP.get URI "https://api.ipify.org"
=> "12.3.45.678"
或用捲髮:
public_ip = `curl https://api.ipify.org`
=> "12.3.45.678"
別激動,那不是我的公網IP地址:)
0
我會使用一個服務,如http://www.whatsmyip.website/以編程方式獲取IP 。使用類似Linux curl的東西會自動返回IP,但如果使用不同的應用程序/語言,則可能需要檢查其API。
ip = `curl http://www.whatsmyip.website`
0
我在找同樣的問題,並找到了很好的解決方案API基礎。
爲了讓我們可以可以使用下面的代碼的公共IP地址:
require "net/http"
ip = Net::HTTP.get(URI("https://api.ipify.org"))
puts "My public IP Address is: " + ip
API網站網址:https://www.ipify.org/
這是爲時已晚asnwer就這一點,但我認爲這可能是halpful他人。
相關問題
- 1. 遠程獲取公共IP
- 2. 在javascript中獲取公共ip地址
- 3. 公共IP地址
- 4. 在Python中獲取遠程IP地址
- 5. 獲取遠程IP地址型號
- 6. 獲取遠程名稱地址(非IP)
- 7. 獲取遠程主機IP地址QTcpServer
- 8. 從部署的應用程序獲取Azure公共IP地址
- 9. 虛擬公共IP地址
- 10. 是公共IP地址嗎?
- 11. 遠程IP地址
- 12. 如何在Ubuntu中獲取公共IP地址
- 13. 在當前EC2實例上獲取公共IP地址
- 14. 性能:獲取C#中的公共IP地址#
- 15. AWS Cloud Formation - 如何獲取公共ip地址的ec2實例
- 16. 通過XirSys獲取我的公共IP地址請求
- 17. 獲取Google App引擎的公共IP地址項目
- 18. 使用scala獲取當前機器的公共IP地址
- 19. 如何在C#中獲取用戶的公共IP地址
- 20. 更改EC2實例的公共IP地址彈性IP地址
- 21. 在MVC 4中獲取公共IP地址,客戶機的Lan IP地址和MAC地址?
- 22. 在Golang獲取公共IP
- 23. GetExtendedUdpTable和遠程IP地址
- 24. SQL查詢選擇公共IP地址
- 25. amazon aws ec2公共IP地址
- 26. 獲取IP地址
- 27. 獲取IP地址
- 28. 獲取IP地址
- 29. 使用遠程計算機獲取遠程計算機的IP地址IP地址
- 30. 替代抓取netstat獲取遠程IP地址列表?
取[whatismyip](http://www.whatismyip.com/)並解析它。 :) –
你手頭有什麼信息?域名?如果用戶直接連接到您的服務器上,那麼客戶端ip是公共IP – ShadyKiller
代碼將在最終用戶的計算機上運行?他們是否已經與外部服務器通話(IE Web請求) – Doon