我想知道是否有一种简单的方法来获取使用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